← 질문 목록
#227깊이 0
인덱스 생성 시 조회 성능과 쓰기 성능의 트레이드오프는 무엇인가?
조회 속도는 빨라지나 데이터 변경 시 인덱스 갱신 비용이 발생해 쓰기 성능이 떨어진다.
| 기준 | 조회 성능 | 쓰기 성능 |
|---|---|---|
| 인덱스 없음 | 느림 (전체 스캔) | 빠름 (단순 삽입) |
| 인덱스 있음 | 빠름 (탐색으로 찾음) | 느림 (정렬 유지) |
B-Tree 계열 보조 인덱스는 키를 정렬해 따로 둔다. 해시 인덱스는 정렬하지 않고, 클러스터형은 데이터 자체가 그 순서다. 데이터를 넣을 때마다 이 정렬 순서를 유지해야 하므로 삽입, 수정, 수정 삭제 시 부하가 증가한다.
반면 조회 시에는 정렬된 상태를 이용해 전체 데이터를 다 훑지 않고 빠르게 찾을 수 있다. 특히 범위 검색이나 정렬된 결과가 필요할 때 효과가 극히 크다.
무분별한 인덱스 생성은 오히려 디스크 I/O를 늘려 시스템 전체 성능을 저하시킨다. 데이터 분포와 쿼리 패턴을 보고 필요한 컬럼에만 인덱스를 둔다.