Search
Duplicate
2️⃣

실행 계획 확인

: 8.0부터는 EXPLAIN 명령에 사용할 수 있는 옵션이 추가되었으며 이를 통해 실행 계획의 출력 포맷과 실제 쿼리의 실행 결과까지 확인할 수 있는 기능을 지원한다.

1. 실행 계획 출력 포맷

: 8.0버전부터는 FORMAT 옵션을 사용해 실행 계획의 표시 방법을 JSON이나 TREE, 단순 테이블 형태로 선택할 수 있음
: 형태는 각 사용자마다 선호도에 차이가 있을 수 있으며 옵티마이저의 실행 계획을 보여주는 것에 큰 차이는 없다.

2. 쿼리의 실행 시간 확인

: 8.0.18버전부터 추가된 기능으로 쿼리의 실행 계획과 단계별 소요된 시간 정보를 확인할 수 있는데, 다음의 명령어를 사용 EXPLAIN ANLYZE
: (actual time=0.001..0.004 rows=48 loops=1) 이런 식으로 표현
actual time
: 일치하는 레코드를 검색하는데 걸리는 시간을 의미, 앞의 숫자는 첫번째 레코드를 가져오는 데 걸린 평균 시간, 뒤의 숫자는 마지막 레코드를 가져온느 데 걸린 평균시간
rows
: 찾고자 하는 데이터의 평균 레코드 건수
loops
: 테이블의 레코드를 찾는 작업이 반복된 횟수
: actual time 필드와 rows 필드를 평균 시간과 평균 레코드 건수라고 하는데, 이는 loops 필드의 값이 1 이상이기 때문, 즉 해당 작업을 loops의 수만큼 반복수행했을 때
평균적으로 걸린 시간을 기재해놓은 것
: 쿼리의 실행 계획이 아주 나쁜 경우라면 EXPLAIN 명령으로 먼저 실행 계획만 확인하고 어느정도 튜닝한 후 EXPLAIN ANALYZE 명령을 사용하는 것이 좋다.