문제
다음 SQL에서 인덱스 사용을 방해하는 요소로 가장 적절한 것은?
SQLCREATE INDEX idx_emp_salary ON emp(salary);
SQLSELECT * FROM emp WHERE salary * 1.1 > 5000;
① 산술 연산자 사용 ② 인덱스 컬럼에 함수 적용 ③ 비교 연산자 사용 ④ 상수값 사용
정답
2번
해설
② WHERE 절에서 인덱스 컬럼(salary)에 직접 산술 연산(* 1.1)이 적용되면 인덱스를 사용할 수 없습니다. 이는 함수를 적용한 것과 동일한 효과로 인덱스의 정렬된 구조를 활용할 수 없게 됩니다. ① 산술 연산자 자체는 문제없으나 인덱스 컬럼에 적용되는 것이 문제입니다. ③ 비교 연산자(>)는 인덱스 사용에 문제가 없습니다. ④ 상수값(5000) 사용은 인덱스 사용에 영향을 주지 않습니다.