선택 기준

접근 패턴이 인덱스 종류를 결정합니다

인덱스는 이름별로 외우기보다, 어떻게 읽는지어떤 행만 빠르게 찾고 싶은지를 기준으로 고르면 더 빠르게 판단할 수 있습니다.

주로 이런 조회
선택
왜 맞는가
PK 기준 범위 읽기 정렬된 순서로 연속 접근이 많은 경우
클러스터드

데이터 배치와 읽기 순서가 맞아 범위 스캔순차 접근이 효율적입니다.

예: 주문번호·날짜 구간 조회
검색 조건이 다양함 여러 컬럼에 보조 인덱스가 필요한 경우
비클러스터드

별도 구조에서 먼저 후보 행을 찾고, 필요하면 본문으로 이동해 다양한 조건 검색을 처리합니다.

예: status, created_at, category 검색
중복되면 안 되는 컬럼 검색 성능과 무결성을 함께 챙겨야 하는 경우
유니크

조회를 빠르게 하면서 동시에 중복 값 삽입 자체를 막을 수 있습니다.

예: 이메일, 주민번호
다중 조건 + 정렬이 자주 함께 나옴 WHERE, ORDER BY, SELECT를 함께 줄이고 싶은 경우
복합 커버링

선두 컬럼 순서가 맞으면 정렬 비용을 줄이고, 필요한 컬럼이 인덱스 안에 있으면 테이블 접근도 줄일 수 있습니다.

예: (user_id, created_at) + 조회 컬럼 포함
계산 결과나 일부 행만 자주 조회 전체 행을 다 인덱싱하면 낭비가 큰 경우
함수 기반 부분

UPPER(name), YEAR(order_date) 같은 표현식이나 조건에 맞는 행만 인덱싱해 필요한 범위만 좁힙니다.

예: active = true, deleted_at IS NULL
본문 검색 또는 분석형 집계 일반 B-Tree로는 비효율적인 패턴
전문 검색 비트맵

텍스트 포함 검색이나 낮은 카디널리티 조건 집계는 특화된 구조가 더 적은 비용으로 동작합니다.

예: 상품 설명 검색, 성별·등급 OLAP
빠른 판단 순서

먼저 읽기 순서와 범위를 보고, 다음으로 조건 조합과 정렬을 확인한 뒤, 마지막에 표현식·부분집합·텍스트·분석형처럼 특수한 패턴이 있는지 확인하면 인덱스 선택이 훨씬 빨라집니다.