책너두 6기 42일차

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

내용정리

10 실행계획

10.3 실행계획분석

10.3.5 type 칼럼

10.3.5.6 ref_or_null

ref 접근 방법과 같은데, NULL 비교가 추가된 형태

10.3.5.7 unique_subquery

WHERE 조건절에서 사용될 수 있는 IN(subquery) 형태의 쿼리를 위한 접근 방법

10.3.5.8 index_subquery

IN 연산자의 특성상 IN(subquery) 또는 IN(상수 나열) 형태의 조건은 괄호 안에 있는 값의 목록에서 중복된 값이 먼저 제거된다. unique_subquery는 중복된 값을 만들어내지 않지만, IN(subquery)에서 subquery가 중복된 값을 반환할 때, 인덱스를 이용해서 제거할 수 있으면 이 접근 방법이 사용된다.

10.3.5.9 range

우리가 앞에서 공부한 인덱스 레인지 스캔 형태의 접근 방법. range는 인덱스를 하나의 값이 아니라 범위로 검색하는 경우를 의미한다.

10.3.5.10 index_merge

2개 이상의 인덱스를 이용해 각각의 검색 결과를 만들어낸 후, 그 결과를 병합해서 처리하는 방식. 여러 인덱스를 읽어야 해서 range 접근 방법보다 비효율적이고, 전문 검색 인덱스를 사용하는 쿼리에서는 적용되지 않으며 항상 2개 이상의 집합이 처리된 결과이기 때문에 중복제거, 교집합이나 합집합 제거 등 부가적인 작업이 더 필요하다.

10.3.5.11 index

효율적이로 인덱스를 사용하는 것이 아니라, 처음부터 끝까지 읽는 인덱스 풀 스캔을 의미한다. 풀 테이블 스캔과 비교 건수는 같지만, 데이터 파일 전체보다 인덱스의 크기가 작으므로 좀 더 빠르고 효율적이다.

10.3.5.12 ALL

풀 테이블 스캔