Explain 쿼리에 대한 데이터를 어떻게 불러오는지에 대한 실행계획을 의미합니다.
즉, 데이터베이스 엔진에 의해 쿼리가 실행되는 방법에 대한 자세한 분석을 제공합니다.

MySQL 에서 Explain을 사용하는것은 간단합니다.

Explain select * from users where age > 19;

- 쿼리문 제일 앞에 Explain 추가

 

Explain 각 항목별 의미

id Select 식별 번호
table 참조테이블
select_type Select 타입
type Join 타입
possible_keys 데이터 조회 시 DB에서 사용 가능한 인덱스 리스트
key 실제로 사용할 인덱스
key_len 실제로 사용할 인덱스의 길이
ref 인덱스와 비교하는 컬럼
rows 쿼리 실행 시 조사하는 행 수립
filtered 필터 조건에 따라 제거된 비율
extra 추가 정보

 

Select_type

SIMPLE UNION이 없는 단순한 SELECT문
PRIMARY 가장 바깥에 있는 Select문
DERIVED 서브쿼리의 Selectans
SUBQUERY 가장 바깥에 있는 서브쿼리
DEPENDENT SUBQUERY 가장바깥의 Select문에 의존성을 가진 서브쿼리 Select
UNION Union문의 두번째 Select

 

Type

system 테이블에 한개의 데이터만 있는경우
const row가 하나일 경우
ref_or_null ref와 같지만 null이 추가되어 검색되는 경우
range 특정 범위 내의 인덱스를 사용한 경우 (Select에서 나쁘지 않음)
index 인덱스를 처음부터 끝까지 찾아서 검색하는 경우, 인덱스 풀스캔 
all 처음부터 끝까지 검색, 풀스캔

 

반응형

'SQL' 카테고리의 다른 글

JSON_EXTRACT 데이터 추출  (0) 2023.04.04
MySQL - UNIXTIME 변환  (0) 2023.03.28
MySQL Convert UNIX TimeStamp  (0) 2023.02.16
ON DUPLICATE KEY UPDATE  (0) 2023.02.14
IF NOT EXISTS  (0) 2023.02.13

+ Recent posts