首页 > 技术文章 > MySQL怎么查看执行计划

scorpio-cat 2020-04-08 17:17 原文

官方地址:https://dev.mysql.com/doc/

我们先看一下explain有哪些字段列,使用的版本是Mysql 8.0

前期准备

-- 创建用户表
CREATE TABLE T_USER
(id int primary KEY,
 loginname varchar(20),
 name varchar(100),
 age int,
 sex char(1),
 dep int,
 address varchar(100)
) 
ENGINE = INNODB DEFAULT CHARSET=utf8 COMMENT='用户表';

-- 创建索引
create index nasb_index on t_user(name, age, sex, dep) ;
View Code

查看有哪些索引:

 

 

 查看执行计划:

 

 

 

  1. id列:值越大越优先执行。
  2. select_type列:查询的类型,不重要
  3. table列:查询的哪个表
  4. partitions列
  5. type列:非常重要的值,要特别关注,一般要求做查询,最少在range级别。ALL:表示全表扫描,最低级别。
  6. possible_keys列:可能存在的索引列
  7. key列:实际用到的索引列
  8. ken_len列:统计长度,int占4个字节,允许为空,多占一个字节
  9. ref列
  10. rows列:获取的条数,预估的值
  11. filtered列:过滤了多少列,预估的值
  12. Extra列:额外的。常见有using where、using index 索引覆盖、using index condition 索引下推。

 

推荐阅读