스캔 방식에 따라 표시되는 메시지

extra 칼럼

책너두 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 BYMIN(), MAX()를 조회하는 쿼리가 인덱스를 오름차순 또는 내림차순으로 1건만 읽는 형태의 최적화가 적용된다면, Extra 칼럼에 표시된다.