문제
다음 복합 인덱스 상황에서 인덱스 SKIP SCAN이 발생하지 않는 경우는?
SQLCREATE INDEX idx_emp ON employees (dept_id, salary, hire_date);
① SELECT * FROM employees WHERE salary > 5000; ② SELECT * FROM employees WHERE hire_date = '2023-01-01'; ③ SELECT * FROM employees WHERE salary > 5000 AND hire_date > '2020-01-01'; ④ SELECT * FROM employees WHERE dept_id IN (10, 20) AND salary > 6000;
정답
4번
해설
복합 인덱스에서 SKIP SCAN은 선행 컬럼(dept_id) 없이 후행 컬럼들만 조건으로 사용될 때 발생할 수 있는 특수한 스캔 방식입니다. ④번은 선행 컬럼인 dept_id가 조건에 포함되어 있어 일반적인 인덱스 범위 스캔이 가능하므로 SKIP SCAN이 필요하지 않습니다. ①②③은 모두 선행 컬럼 없이 후행 컬럼만 사용하므로 SKIP SCAN 대상이 될 수 있습니다.