백엔드 Back-end/데이터베이스 Database

Q. MySQL 인덱스 타는지 안 타는지 확인하는 방법은?

Tap to restart 2022. 10. 26. 01:00
반응형

A. Explain을 활용하면 쉽게 확인할 수 있다. 

 

예를 들어서 아래와 같은 쿼리문이 인덱스를 타는지 궁금하다.

SELECT beverage.name, beverage.price FROM beverage LEFT JOIN category ON beverage.category_id = category.id;

이때 SELECT 앞에 EXPLAIN만 붙여두면 확인할 수 있다. 아래 예처럼 말이다.

EXPLAIN SELECT beverage.name, beverage.price FROM beverage LEFT JOIN category ON beverage.category_id = category.id;

실제 실행해보면 아래 예처럼 결과가 나온다. Extra에 나온 정보를 보면 Using index를 통해서 index를 이용하고 있다는 것을 확인할 수 있다. 

인덱스를 안 타서 쿼리가 느린 것 같으면 인덱스를 추가해서 인덱스를 이용하도록 해서 쿼리 속도를 개선할 수 있다.

반응형