MySQL에서 쿼리의 실행 계획을 확인하는 명령어, 아무런 옵션 없이 사용된 경우 기본적인 쿼리 실행 계획만 보임
EXPLAIN EXTENDED, EXPLAIN PARTITIONS 명령을 통해 더 상세한 실행 계획을 볼 수 있음
EXPLAIN SELECT * FROM employees
처럼 EXPLAIN뒤에 확인하고자 하는 SELECT문을 작성해서 확인 가능
실행 예시
EXPLAIN SELECT e.emp_no, e.first_name, s.from_date, s.salary
FROM employees e, salaries s
WHERE e.emp_no=s.emp_no
limit 10;
id
// 첫번째 쿼리
explain select e.emp_no, e.first_name, s.from_date, s.salary
from employees e, salaries s
where e.emp_no=s.emp_no;
// 두번째 쿼리
explain select
((select count(*) from employees)
UNION ALL
(select count(*) from departments)) as total_count;
select_type
SIMPLE
explain select * from employees;
PRIMARY
explain select
((select count(*) from employees)
UNION ALL
(select count(*) from departments)) as total_count;
UNION
SUBQUERY
DERIVED
table
// 첫번째 쿼리
explain select emp_no from employees;
// 두번째 쿼리
explain select emp_no from employees e;
partitions
type
possible_key
key_len
explain select emp_no from employees where emp_no=10001;
ref
// 첫번째 쿼리
explain select emp_no, first_name from employees where emp_no=10001;
// 두번째 쿼리
EXPLAIN SELECT e.emp_no, e.first_name, s.from_date, s.salary
FROM employees e, salaries s
WHERE e.emp_no=s.emp_no
limit 10;
rows
filtered
extra
explain select emp_no, fisrst_name from employees;