介绍
- MySQL 提供了⼀个 EXPLAIN 命令, 它可以对 SELECT 语句的执⾏计划进⾏分析, 并输出 SELECT 执⾏的详细信息, 以供开发⼈员针对性优化.
- 使⽤explain这个命令来查看⼀个这些SQL语句的执⾏计划,查看该SQL语句有没有使⽤上了索引,有没有做全表扫描,这都可以通过explain命令来查看。
- 可以通过explain命令深⼊了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运⾏SQL语句时哪种策略预计会被优化器采⽤。
- EXPLAIN 命令⽤法⼗分简单, 在 SELECT 语句前加上 explain 就可以了, 例如:
EXPLAIN SELECT * FROM user;
执行结果:
参数说明
expain出来的信息有10列,分别是
id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra
- 案例表
-- 用户表
create table user(
id int primary key,
login_name varchar(64),
name varchar(100),
age int,
sex char(1),
dep int,
address varchar(100)
);
-- 部门表
create table dep(
id int primary key,
name varchar(100)
);
-- 地址表
create table addr(
id int primary key,
addr varchar(100)
);
-- 创建普通索引
alter table user add index idx_dep(dep);
-- 创建唯一索引
alter table user add unique