Mysql

[MySQL] EXPLAIN 실행 계획 사용 방법

먹세 2021. 11. 11. 18:05

DB 튜닝이나 쿼리 최적화를 위해서 가장 먼저 해야 하는 것이 실행계획을 살펴보는 것이다.

EXPLAIN SELECT * FROM dummy_test WHERE id=3 AND email = 'QS3aYM5YqB@gmail.com'

사용 방법은 EXPLAIN 을 쿼리 앞에 붙여주면 된다.

 

결과 :

인덱스를 생성해서 확인해보자

ALTER TABLE dummy_test ADD INDEX test_idx_id_email(id, email)

인덱스 삭제 방법

ALTER TABLE dummy_Test DROP INDEX test_idx_id_email

 

인덱스가 잘 생성되었는지 확인

SHOW INDEX FROM dummy_test

위 처럼 잘 생성 되었다.

 

이제 EXPLAIN을 사용하여 인덱스를 타는지 확인 해보자

EXPLAIN SELECT * FROM dummy_test WHERE id=3 AND email = 'QS3aYM5YqB@gmail.com'

possible_keys 에는 사용 가능한 인덱스들의 목록이 표시된다.

test_idx_id 와 test_idx_id_email 인덱스가 표시된다.

 

key 부분은 실제로 사용된 인덱스명이 표시된다.

test_idx_id 인덱스를 탄 것.

이 부분을 강제로 test_idx_id_email 인덱스를 타게 변경해보자.

EXPLAIN SELECT * FROM dummy_test use INDEX(test_idx_id_email) WHERE email = 'QS3aYM5YqB@gmail.com' AND id=3

use INDEX(사용할 인덱스명) 으로 인덱스를 지정할 수 있다.

 

결과 :

key 부분에 test_idx_id_email 인덱스를 사용했다고 표시된다.

 

EXPLAIN으로 인덱스 및 join 등등 실행계획을 살펴보며 쿼리 및 스키마 최적화를 해보자.

 

좋은 글 :

https://nomadlee.com/mysql-explain-sql/ 

 

MySQL Explain 실행계획 사용법 및 분석 - Useful Guide

mysql explain, explain 보는법, explain 사용법, select_type type, sub query, where 조건, 서브쿼리, 묵시적 형변환, like 검색, 최적화, type, filtered, type, key_len

nomadlee.com

 

반응형