실행할 쿼리 앞에 EXPLAIN 명령어 추가
- 각 단계별 실행 계획 결과 출력
column | description |
---|---|
id | 테이블 JOIN 순서를 나타내는 값 |
select_type | SELECT query 실행 종류 (SIMPLE, DEPENDENT SUBQUERY, DEPENDENT UNION) |
table | 해당 단계 접근 테이블명(별칭일 경우, 별칭 출력) |
type | 테이블 내 record 조회 접근 방식 (system, const, eq_ref, ref, fulltext, range, index, ALL) |
possible_keys | record에 접근하기 위한 key 또는 index 목록 |
key | record에 접근하기 위해 참조한 index |
key_len | index 중 참조한 byte 정보 |
ref | index 연산 시 비교/연산 사용 기준값 |
rows | record 조회 시 접근해야하는 record 예측 |
Extra | 특이사항 (Using where, Using index) |
type colume | record 접근 방법 |
---|---|
system | record 1개 이하인 경우 |
const, eq_ref | PK 또는 unique index 검색 (가장 빠른 검색 방법) |
ref | index를 이용한 동등 비교 연산 |
fulltext | 전문 인덱스 (일반적인 비교 연산이 어려운 경우) |
range | index 이용 값 비교 연산 (BETWEEN) |
index | index 전체 스캔 |
ALL | 전체 테이블 스캔 |
EXPLAIN
SELECT *
FROM MEMBER INNER JOIN MEMBERDETIAL USING(MEM_ID)
-- case 1 : INDEX 컬럼 O
WHERE MEM_ID = '000000000001';
-- case 2 : INDEX 컬럼 X
WHERE MEM_NM = '회원명';
type | rows |
---|---|
const | 1 |
ref | 1 |
type | rows |
---|---|
ALL | 2246 |
eq_ref | 1 |