실행 계획 확인
- MySQL 서버의 실행 계획은
DESC
또는 EXPLAIN
명령으로 확인할 수 있다.
- MySQL 8.0 버전부터는
EXPLAIN
명령에 사용할 수 있는 새로운 옵션이 추가됐다.
실행 계획 출력 포맷
TREE 포맷의 실행 계획
TREE
포맷의 실행 계획에서 들여쓰기는 호출 순서를 의미하며, 실제 실행 순서는 다음 기준으로 읽으면 된다.
- 들여쓰기가 같은 레벨에서는 상단에 위치한 라인이 먼저 실행
- 들여쓰기가 다른 레벨에서는 가장 안쪽에 위치한 라인이 먼저 실행
쿼리의 실행 시간 확인
SHOW PROFILE
- 어떤 부분에서 시간이 많이 소요되는지 확인할 수 있다.
- 하지만 실행 계획의 단계별로 소요된 시간 정보를 보여주진 않는다.
EXPLAIN ANALYZE
EXPLAIN ANALYZE
SELECT ...
- MySQL 8.0.18 버전부터 추가되었다.
EXPLAIN
명령과 달리 실행 계획만 추출하는 것이 아니라 실제 쿼리를 실행하고 사용된 실행 계획과 소요된 시간을 보여준다.
- 쿼리의 실행 계획과 단계별 소요된 시간 정보를 확인할 수 있다.
- 항상 결과를 TREE 포맷으로 보여주기 때문에,
FORMAT
옵션을 사용할 수 없다.
EXPLAIN ANALYZE
명령의 결과에는 단계별로 다음 항목들이 표시된다.
- 실제 소요된 시간 (actual time)
- 레코드 건수 (rows)
- 반복 횟수 (loops)
Reference
참고 서적
📔 Real MySQL 8.0