select, where, group by, order by
등에 활용되는 모든 컬럼이 인덱스의 구성 요소인 경우를 말한다.select first_name, birth_date from employee where first_name between ‘Babette’ and ‘Gad’;
birth_date
를 찾기 위해 데이터 파일을 검색하는 작업이 일어날 것이고 이 작업이 많다고 판단되면 인덱스를 테우지 않고 풀스캔을 하는 경우가 많다.select first_name from employee where first_name between ‘Babette’ and ‘Gad’;
select first_name, emp_no from employee where first_name between ‘Babette’ and ‘Gad’;
first_name, emp_no
를 가져오는 쿼리에서 커버링 인덱스가 적용된 이유는 InnoDB에서 논 클러스터링 인덱스의 레코드 주소가 그림에서처럼 PK(클러스터링 인덱스)를 가지고 있기 때문이다. 즉 인덱스 데이터 만으로 데이터 파일 검색 없이 결과를 반환할 수 있다.select first_name from employee where first_name between ‘Babette’ and ‘Gad’;
select first_name, emp_no from employee where first_name between ‘Babette’ and ‘Gad’;
first_name, emp_no
를 가져오는 쿼리에서 커버링 인덱스가 적용된 이유는 InnoDB에서 논 클러스터링 인덱스의 레코드 주소가 그림에서처럼 PK(클러스터링 인덱스)를 가지고 있기 때문이다. 즉 인덱스 데이터 만으로 데이터 파일 검색 없이 결과를 반환할 수 있다.where
조건을 평가하는 MySQL 서버로 반환한다.where
조건의 일부를 평가할 수 있는 경우 MySQL 서버는 where
조건의 이 부분을 스토리지 엔진으로 푸시 한다.커버링 인덱스를 이용한 페이징 최적화 (jpa + querydsl)
https://jojoldu.tistory.com/529?category=637935