Index Choice

인덱스 종류는 쿼리 목적과 운영 비용으로 선택한다

인덱스 이름보다 중요한 것은 어떤 쿼리를 줄이고, 어떤 쓰기 비용을 감수할지의 선택입니다.

쿼리 목적
우선 후보
선택 이유
검증할 비용
PK 조회와 키 범위 읽기
Clustered
행 저장 구조 자체가 키 순서를 따라 조회 시작점이 짧다.
페이지 분할, 키 변경
다른 조건으로 행 찾기
Nonclustered
보조 키에서 row locator를 얻어 실제 행으로 이동한다.
lookup, 저장 공간
중복 방지와 조회를 동시에 처리
Unique
삽입 시 같은 키를 검사해 제약과 인덱스를 함께 만족한다.
NULL 규칙, 삽입 검사
여러 조건이 항상 함께 사용
Composite / Covering
선두 컬럼과 필요한 컬럼을 맞추면 필터와 테이블 접근을 줄인다.
컬럼 순서, 인덱스 폭
함수 결과나 일부 행만 검색
Expression / Partial
저장된 표현식 또는 조건을 만족하는 행만 별도 경로로 둔다.
표현식 일치, 조건 증명
전문 검색·분석 결합·동등 검색 특화
Full Text / Bitmap / Hash
B+Tree가 약한 단어 검색, 비트 결합, 버킷 동등 검색을 보완한다.
토큰화, OLTP 갱신, 범위 검색 한계
선택 순서: 쿼리 패턴 확인 → 후보 인덱스 설계 → 실행 계획과 쓰기 비용 검증 → 불필요한 인덱스 제거.