topic★★★★★난이도 · 약 15분
인덱스
조회 성능을 위한 보조 자료구조. 클러스터드 / 비클러스터드, B-tree / Hash / 비트맵.
#DB#인덱스
왜 배우는가
인덱스 선정 기준과 종류가 단답으로 자주 나온다.
| 종류 | 특징 | 용도 |
|---|---|---|
| B-트리 / B+트리 | 균형 트리, 범위 검색 빠름 | 일반 인덱스 |
| 해시 인덱스 | 등가 검색 O(1) | `=` 검색 최적 |
| 비트맵 인덱스 | 컬럼 값을 비트로 | 저 카디널리티(성별 등) |
| 클러스터드 | 테이블 자체가 정렬됨 | 테이블당 1개 |
| 비클러스터드 | 별도 인덱스 구조 | 여러 개 생성 가능 |
인덱스 선정 기준 — ① WHERE/JOIN/ORDER BY에 자주 등장 ② 선택도가 높은 컬럼(고유 값 많음) ③ 갱신 빈도가 낮은 컬럼 ④ 크기가 작은 컬럼.
인덱스의 단점 — 삽입/수정/삭제 시 인덱스도 갱신해야 하므로 쓰기 성능 저하. 너무 많이 만들면 오히려 손해.
실기 드릴 2문항
edit실기 드릴 · 단답형
테이블의 물리적 저장 순서 자체가 인덱스 키에 의해 정렬되는 인덱스는?
edit실기 드릴 · 단답형
성별 같은 낮은 카디널리티 컬럼에 적합한 인덱스는?