복합 인덱스는 두 개 이상의 열을 함께 키로 사용하는 데이터베이스 인덱스이다. 열 순서와 인덱스 종류가 사용 방식에 영향을 준다.
원리
B-tree에서는 앞쪽 열의 동등 조건과 그다음 범위 조건이 탐색 범위를 줄이는 데 중요하다. 뒤쪽 조건도 도움이 되지만 항상 같은 방식으로 범위를 좁히지는 않는다.
예시
고객 번호와 주문 시각을 함께 조회한다면 (customer_id, created_at) 인덱스를 고려할 수 있다. 고객별 기간 조회의 접근 패턴과 연결된다.
SQL |
|---|
SQL SELECT · SQL JOIN · SQL GROUP BY · SQL HAVING · SQL 공통 테이블 식 |
주의할 점
앞 열 조건이 없으면 절대 사용할 수 없다는 식의 단정은 피한다. DB 버전의 skip scan 지원, 값 분포, 비용에 따라 계획이 달라지므로 실제 실행 계획을 확인한다.