따라서 first_name
칼럼만으로 인덱스를 만들었을 때 그 인덱스에 PK인 emp_no
칼럼이 같이 저장되기 때문에 다음 쿼리는 커버링 인덱스로 처리될 가능성이 상당히 높다.
SELECT emp_no, first_name
FROM employees
WHERE first_name BETWEEN 'Babette' AND 'Gad';
type
칼럼)에 관계없이 사용될 수 있다.eq_ref, ref, range, index_merge, index
등AVG()
, SUM()
, COUNT()
처럼 조회하려는 값이 모든 인덱스를 다 읽어야 할 때는 필요한 레코드만 듬성듬성 읽을 수가 없다.Using index for group-by
메시지가 출력되지 않는다.Using index for group-by
메시지가 표시된다.MIN()
이나 MAX()
같이 조회하는 값이 인덱스의 첫 번째 또는 마지막 레코드만 읽어도 되는 쿼리는 “루스 인덱스 스캔”이 사용될 수 있다.Using join buffer
문구 뒤에 조인 알고리즘이 추가로 표시된다.index_merge
접근 방법(type
칼럼의 값이 index_merge
)으로 실행되는 경우에는 2개 이상의 인덱스가 동시에 사용될 수 있다.EXPLAIN
SELECT *
FROM employees
WHERE emp_no BETWEEN 10001 AND 10100 ## 작업 범위 결정
AND gender = 'F' ## 체크 조건
filtered
칼럼이 표시되므로 쉽게 성능상의 이슈가 있는지 없는지를 알아낼 수 있다.LIMIT 0
을 사용한다.LIMIT 0
을 사용하면 MySQL 옵티마이저는 결과값의 메타 정보만 반환한다.Zero limit
가 출력된다.