작성
·
430
·
수정됨
0
실습 내용 질문 드립니다~!
CREATE INDEX idx_covering on orders(customer_id, order_date, total_amount);
select * from orders where customer_id = 25675 order by order_date desc limit 10;
4개의 컬럼 중 PK를 제외한 3개만 있는데 어떻게 커버링 인덱스로 활용할 수 있는건가요?
답변 2
1
안녕하세요~ 질문 주셔서 감사합니다.
커버링 인덱스는 인덱스 스캔만으로 결과가 나가는거에요. 인덱스 스캔 이후 추가적인 테이블 탐색이 필요가 없는거죠.
idx_covering 이라는 인덱스는 조회하는 SELECT 문에 필요한 모든 칼럼을 다 가지고 있으니까 커버링 인덱스가 적용이 되는겁니다. 인덱스 스캔만으로 결과가 나갈 수 있는거죠.
또 다른 질문 주시면 답변 드릴게요.
감사합니다.
0
앗.. 잘 이해가 안되었습니다..
인덱스에는 customer_id, order_date, total_amount 이렇게 3개의 컬럼이 있고
select * from orders의 결과는 order_id, customer_id, order_date, total_amount 4개여서 order_id의 값도 조회하려면 커버링 인덱스만으로 안되고 테이블 스캔을 해야 되는게 아닌가요?