책너두 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 칼럼에 표시된다.