왼쪽부터 연속된 prefix만 탐색
복합 인덱스 `(user_id, order_date, status)`는 순서를 건너뛰면 뒤 컬럼이 탐색 키가 되지 않습니다.
옵티마이저는 인덱스를 왼쪽부터 따라 내려갑니다. 선두 컬럼이 빠지거나 중간 컬럼이 끊기면, 그 뒤 조건은 인덱스를 더 좁히는 기준이 아니라 추가 필터에 머무릅니다.
1. 선두
user_id
탐색이 시작되는 첫 기준
2. 다음
order_date
앞 컬럼 뒤에 이어질 때 범위를 더 좁힘
3. 마지막
status
앞 prefix가 유지될 때 함께 활용
조건 연속 prefix 판단
인덱스 사용

WHERE user_id = 1

user_id
선두 1개 사용
첫 컬럼부터 바로 탐색 시작

WHERE user_id = 1 AND order_date = '2024-01-01'

user_id order_date
선두 2개 사용
왼쪽부터 끊기지 않고 이어짐

WHERE user_id = 1 AND order_date > '2024-01-01' AND status = 'A'

user_id order_date status
전체 순서 안에서 활용
세 컬럼이 인덱스 순서를 따라 연결됨
비효율 또는 미사용

WHERE order_date = '2024-01-01'

선두 없음
user_id 누락
중간 컬럼만으로는 시작 위치를 못 찾음

WHERE status = 'A'

선두 없음
선두 누락
마지막 컬럼만으로는 인덱스 탐색 불가

WHERE user_id = 1 AND status = 'A'

user_id order_date 건너뜀
user_id만 사용
status는 탐색 키가 아니라 추가 필터
한 줄 규칙
(a, b, c) 인덱스에서는 a, a+b, a+b+c는 자연스럽게 타지만, b만 쓰거나 a+c처럼 중간을 건너뛰면 prefix가 끊겨 뒤 컬럼은 인덱스를 더 좁히지 못합니다.