官方地址: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) ;
查看有哪些索引:
查看执行计划:
- id列:值越大越优先执行。
- select_type列:查询的类型,不重要
- table列:查询的哪个表
- partitions列
- type列:非常重要的值,要特别关注,一般要求做查询,最少在range级别。ALL:表示全表扫描,最低级别。
- possible_keys列:可能存在的索引列
- key列:实际用到的索引列
- ken_len列:统计长度,int占4个字节,允许为空,多占一个字节
- ref列
- rows列:获取的条数,预估的值
- filtered列:过滤了多少列,预估的值
- Extra列:额外的。常见有using where、using index 索引覆盖、using index condition 索引下推。