책너두 6기 45일차
백은빈, 이성욱의 Real MySQL 8.0 1권 p.466 ~ p.472
내용정리
10 실행계획
10.3 실행계획분석
10.3.12 Extra 칼럼
10.3.12.14 Plan isn’t ready yet
EXPLAIN FOR CONNECTION
명령은 MySQL 옵티마이저가 의도된 인덱스를 사용하지 못해서 풀 스캔을 한다거나 잘못된 실행 계획을 선탣한 것이 아닌지 확인할 떄 유용하게 사용할 수 있는 명령이다. 이 명령을 실행했을 때 Extra
칼럼에 “Plan is not ready yet”이라는 메시지가 표시되면, 해당 커넥션에서 아직 쿼리의 실행 계획을 수립하지 모 ㅅ한 상태에서 EXPLAIN FOR CONNECTION
명령이 실행된 것을 의미한다. 따라서, 잠시 후 실행하면 된다.
10.3.12.15 Range checked for each record(index map: N)
레코드마다 인덱스 레인지 스캔을 체크할 때 표시된다.
10.3.12.16 Recursive
CTE(Common Table Expression)을 이용해 재귀 쿼리르 작성할 수 있다. 이 때 “Recursive”가 출력된다.
10.3.12.17 Rematerialize
래터럴 조인하여 임시 테이블이 생성되면 표시
10.3.12.18 Select tables optimized away
MIN()
또는 MAX()
만 SELECT
절에 사용되거나 GROUP BY
로 MIN()
, MAX()
를 조회하는 쿼리가 인덱스를 오름차순 또는 내림차순으로 1건만 읽는 형태의 최적화가 적용된다면, Extra 칼럼에 표시된다.