인덱스 사용에 대한 질문이 있습니다!
81
작성한 질문수 7
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 인덱스를 계속 사용하는 것이 보장되는지, 아니면 나중에 다시 변경될 가능성도 있는지도 알고 싶습니다.
답변 1
드랍 테이블로 지운 ordes에 대해서 질문
0
23
1
문제 풀이 1번 질문
0
29
1
간단한 오타 제보입니다.
0
69
1
ON을 명시하지 않았을 경우 질문드립니다.
0
87
1
강의 2:53 union을썼는데도 션이 중복
0
78
1
where 대신 having을 써도 되나요?
0
106
1
주문 내역에 대한 고객 데이터
0
88
2
in 수행
0
61
1
외부조인1 강의 관련 질문
0
87
3
커버링 인덱스와 랜덤i/o 질문
0
80
1
오타인거죠?
0
92
1
섹션 3 퀴즈 3번 문제
0
89
2
GROUP BY 기준 컬럼
0
97
1
질문이 있습니다
0
65
1
오타
0
90
2
실제 상용 서비스 질문
0
110
1
파티셔닝 관련 질문입니다.
0
70
1
join 문제 풀이2 문제1(self join) 질문
0
78
1
9. 인덱스2.pdf 중에서
0
90
1
문제 2번
0
82
2
문제와 풀이1 - 3번 문제
-1
84
2
잘 사용하진 않지만 풀 외부 조인을 사용하신 사례가 궁금합니다!
0
106
1
[58. 인덱스와 정렬]을 듣다가 질문입니다.
0
108
2
두개 이상의 테이블을 조인할때 인덱스 질문이 있습니다.
0
76
1





