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