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 |