본문 바로가기
MYSQL

[MYSQL] 확장된 실행 계획 수행

by Johnny's 2023. 7. 7.

좋고 나쁨을 판단하는 기준

select_type 항목의 판단 기준

좋음 : SIMPLE, PRIMARY, DERIVED

나쁨 : DEPENDENT *, UNCACHEABLE *

 

type  항목의 판단 기준

좋음 : system, const, eq_ref

나쁨 : index, all

 

extra 항목의 판단 기준

좋음 : Using index

나쁨 : Using filesort, Using temporary

 

MYSQL의 확장된 실행 계획 수행

| EXPLAIN FORMAT = TRADITIONAL |

실행 계획 확인하는 키워드 EXPLAIN 사용 → 기본 포맷 TRADITIONAL

 

| EXPLAIN FORMAT =TREE |

트리형태로 추가된 실행 계획 항목 확인

EXPLAIN FORMAT = TREE
SELECT * FROM 사원
WHERE 사원번호 BETWEEN 100001 AND 200000;

 

결과

 

| EXPLAIN FORMAT = JSON |

JSON 형태로 추가된 실행 계획 항목 확인

EXPLAIN FORMAT = JSON
SELECT * FROM 사원
WHERE 사원번호 BETWEEN 100001 AND 200000;

 

결과

 

| EXPLAIN ANALYZE |

실제 측정한 실행 계획 정보를 출력하고 싶다면 ANALYZE 키워드 사용

실제 수행된 소요시간과 비용을 측정하여 실측 실행 계획예측 실행 계획 모두를 확인하려면 EXPLAIN ANALYZE 키워드 활용 (MYSQL 8.0.18 이상 버전에서 SELECT 문 대상으로 수행 가능)

 

EXPLAIN ANALYZE
SELECT * FROM 사원
WHERE 사원번호 BETWEEN 100001 AND 200000;

 

결과

 

* 참고

- 업무에 바로쓰는 SQL 튜닝(도서) - 3장 SQL 튜닝의 실행 계획 파헤치기

 

댓글