문제
다음 SQL에서 인덱스 사용이 가능한 조건은?
SQL-- PRODUCT 테이블에 (category_id, price) 복합 인덱스 존재 SELECT * FROM product WHERE category_id = 10 AND price > 50000; SELECT * FROM product WHERE price BETWEEN 30000 AND 100000; SELECT * FROM product WHERE category_id IN (1, 3, 5);
① 첫 번째와 두 번째 쿼리만 인덱스 사용 ② 첫 번째와 세 번째 쿼리만 인덱스 사용 ③ 세 개 쿼리 모두 인덱스 사용 불가 ④ 세 개 쿼리 모두 인덱스 사용 가능
정답
2번
해설
복합 인덱스 (category_id, price)에서 첫 번째 쿼리는 선행 컬럼과 후행 컬럼 모두 조건에 있어 인덱스 사용 가능합니다. 세 번째 쿼리는 선행 컬럼만 조건에 있어 인덱스 사용 가능합니다. 두 번째 쿼리는 선행 컬럼(category_id) 없이 후행 컬럼(price)만 조건에 있어 일반적으로 인덱스 사용이 어렵습니다.