-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
미해결
커버링 인덱스
24.01.17 00:17 작성 24.01.17 00:17 수정 조회수 258
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개만 있는데 어떻게 커버링 인덱스로 활용할 수 있는건가요?
답변을 작성해보세요.
1
여정민
지식공유자2024.01.17
안녕하세요~ 질문 주셔서 감사합니다.
커버링 인덱스는 인덱스 스캔만으로 결과가 나가는거에요. 인덱스 스캔 이후 추가적인 테이블 탐색이 필요가 없는거죠.
idx_covering 이라는 인덱스는 조회하는 SELECT 문에 필요한 모든 칼럼을 다 가지고 있으니까 커버링 인덱스가 적용이 되는겁니다. 인덱스 스캔만으로 결과가 나갈 수 있는거죠.
또 다른 질문 주시면 답변 드릴게요.
감사합니다.
yhwjd
질문자2024.01.18
앗.. 잘 이해가 안되었습니다..
인덱스에는 customer_id, order_date, total_amount 이렇게 3개의 컬럼이 있고
select * from orders의 결과는 order_id, customer_id, order_date, total_amount 4개여서 order_id의 값도 조회하려면 커버링 인덱스만으로 안되고 테이블 스캔을 해야 되는게 아닌가요?
여정민
지식공유자2024.01.20
order_id 와 같은 PK 값 들은 인덱스에 기본적으로 들어가있어요~
PK 값이 있어야 인덱스 스캔 후 실제 테이블 레코드에 엑세스 할 수 있기 때문에 인덱스에 포함되어 있는거에요.
더 공부해보고 싶으시면 Index Extension 이라는 키워드로 검색해서 보시면 될 것 같습니다.
0
답변 2