MySQL 실행 계획은 DESC
또는 EXPLAIN
명령으로 확인할 수 있다. 또한 MySQL 8.0 부터 EXPLAIN 명령에 사용할 수 있는 새로운 옵션이 추가되었다.
실행 계획 출력 포맷
이전 버전에서는 EXPLAIN EXTENDED
, EXPLAIN PARTITIONS
명령이 구분되어 있었지만 8.0 버전부터는 모든 내용이 통합되어 보이도록 개선되면서 옵션이 문법에서 제거되었다.
또한 FORMAT
옵션을 사용해 실행 계획의 표시 방법을 JSON, TREE, 단순 테이블 형태로 선택할 수 있다.
|
|
|
|
|
|
쿼리의 실행 시간 확인
MySQL 8.0.18 버전부터는 쿼리의 실행 계획과 단계별 소요된 시간 정보를 확인할 수 있는 EXPLAIN ANALYZE
기능이 추가되었다.
기존 SHOW PROFILE
명령과 다르게 실행 계획의 단계별로 소요된 시간 정보를 보여주며, 항상 TREE 형식으로만 제공되어 FORMAT
옵션은 사용할 수 없다.
EXPLAIN ANALYZE
명령의 결과에는 단계별로 실제 소요된 시간과 처리한 레코드 건수, 반복 획수가 표시된다.
EXPAIN
명령과 달리 실행 계획만 추출하는 것이 아니라 실제 쿼리를 실행하고 사용된 실행 계획과 소요된 시간을 보여준다. 그래서 EXPLAIN ANALYZE
으로 실행하였을 때 실제로 쿼리가 모두 완료 되어야 확인할 수 있으므로, 실행 시간이 아주 많이 걸리는 쿼리라면 EXPLAIN
명령을 통해 확인한 실행 계획을 바탕으로 1차 튜닝 후에 EXPLAIN ANALYZE
명령을 실행하는 것이 좋다.