처리 방법을 나타내는 칼럼들

실행계획분석

책너두 6기 43일차

백은빈, 이성욱의 Real MySQL 8.0 1권 p.449 ~ p.457

내용정리

10 실행계획

10.3 실행계획분석

10.3.6 possible_keys 칼럼

MySQL 옵티마이저는 쿼리를 처리하기 위해 여러 가지 처리 방법을 고려하고 그중에서 비용이 가장 낮을 것으로 예상하는 실행 계획을 선택해 쿼리를 실행한다. 그런데 possible_keys 칼럼에 있는 내용은 옵티마이저가 최적의 실행 계획을 만들기 위해 후보로 선정했던 접근 방법에서 사용되는 인덱스의 목록일 뿐이다. 즉, 말 그대로 “사용될 법했던 인덱스의 목록”이다.

10.3.7 key 칼럼

최종 선택된 실행 계획에서 사용하는 인덱스를 의미

10.3.8 key_len 칼럼

쿼리를 처리하기 위해 다중 칼럼으로 구성된 인덱스에서 몇 개의 칼럼까지 사용햤는자 알려준다.

10.3.9 ref 칼럼

접근 방법이 ref면 참조 조건(Equal 비교 조건)으로 어떤 값이 제공됐는지 보여준다.

10.3.10 rows 칼럼

실행 계획의 효율성 판단을 위해 예측했던 레코드 건수를 보여준다.

10.3.11 filtered 칼럼

필터링되고 남은 레코드의 비율을 의미한다. 인덱스를 사용할 수 있는 조건도 중요하지만 인덱스를 사용하지 못하는 조건에 일치하는 레코드 건수를 팣악하는 걳도 매우 중요하다.

10.3.12 Extra 칼럼

고정된 몇 개의 문장이 표시되는데, 일반적으로 2~3개씩 함께 표시된다. 쿼리의 실행 계획에서 서은ㅇ에 관련된 중요한 내용이 표시된다. 주로 내부적인 처리 알고리즘에 대해 조금 더 깊이있는 내용을 보여주는 경우가 많다.

10.3.12.1 cont row not found

const 접근 방법으로 테이블을 읽었지만 실제로 해당 테이블에 레코드가 1건도 존재하지 않으면 표시

10.3.12.2 Deleting all rows

테이블의 모든 레코드를 삭제하는 핸들러 기능(API)을 한번 호출함으로써 처리됐다는 것을 의미

10.3.12.3 Distinct

조인하지 않아도 되는 항목은 모두 무시하고 꼭 필요한 것만 조인했으며, dept_emp 테이블에서는 꼭 필요한 레코드만 읽었다는 것을 표현