강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

ybs1121님의 프로필 이미지
ybs1121

작성한 질문수

김영한의 실전 데이터베이스 - 기본편

인덱스와 정렬

인덱스 사용에 대한 질문이 있습니다!

작성

·

11

0

MySQL 8.x 버전에서 다음과 같이 두 개의 인덱스를 생성했습니다.

CREATE INDEX idx_items_price ON items (price); 
CREATE INDEX idx_items_price2 ON items (price DESC); 

 

이 상태에서 아래 쿼리를 실행하면,

SELECT *
FROM items
WHERE price BETWEEN 50000 AND 100000
ORDER BY price DESC;

처음에는 possible_keys에 두 인덱스가 모두 나타나고, 옵티마이저가 idx_items_price (오름차순 인덱스)를 backward index scan으로 사용합니다. 이후에는 몇 번 실행 후에는 possible_keys에 idx_items_price2 (내림차순 인덱스)만 나타나고 이 인덱스가 쿼리에 사용됩니다.

이런 현상이 발생하는 원인이 옵티마이저가 통계 정보를 수집하고 점차 최적화되어 인덱스 선택이 변경되는 것인지 궁금합니다. 그리고 한 번 최적화가 이루어진 후에는 idx_items_price2 인덱스를 계속 사용하는 것이 보장되는지, 아니면 나중에 다시 변경될 가능성도 있는지도 알고 싶습니다.

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
ybs1121님의 프로필 이미지
ybs1121

작성한 질문수

질문하기