파티션 프루닝은 불필요한 파티션을 제외하고 필요한 테이블에만 접근하는 과정임. 파티션 컬럼은 쿼리가 어느 파티션에 접근했는지 나타냄
각 테이블의 접근 방법을 나타내고 총 12가지가 있음
ALL
을 제외한 나머지 접근 방법들은 인덱스를 사용함
(빠른 접근 순으로 나열)
상위 4~5개보다 하위의 조건이 뜨면 튜닝이 필요하다는 시그널일 수도 있음
system: 레코드가 1건 이하인 테이블을 참조하는 방식
const: PK나 유니크 키를 사용한 WHERE절로 1건만 반환하는 쿼리
PK나 유니크 키 컬럼을 사용하는 조건절로 1건만 반환하는 쿼리 처리 방식
프라이머리 키 일부 조건만 사용할 경우 ref로 표현
const인 경우 최적화 단계에서 통째로 상수화
SELECT name FROM user WHERE id=1;
eq_ref: 조인 시 첫 테이블의 컬럼값을 PK나 유니크 키로 다음 테이블을 조회하는 방식
ref: 인덱스를 사용하지만 반환되는 레코드가 여러 건일 수 있음
fulltext: 전문 검색 인덱스를 사용하는 방식임
ref_or_null: ref 방식 또는 NULL 비교를 의미함
unique_subquery: 서브쿼리에서 중복되지 않은 값을 반환할 때 사용하는 방식임
index_subquery: 중복된 값을 제거해야 하는 서브쿼리를 의미함
range: 인덱스 레인지 스캔 방식