Mysql Explain各字段说明

id :同一个select,id都是1;不同的select,id才不同。

select_type: 查询类型

SIMPLE:普通查询

PRIMARY:主查询

SUBQUERY:子查询

DEPENDENT SUBQUERY:子查询,不能被优化为连接查询

UNION:联合查询

UNION:联合查询后,去除重复的数据

UNION ALL: 不去除重复的数据

table:表

partitions:

type:索引类型

ALL:全表扫描,不使用索引

Index:全索引扫描,即遍历整个索引树来获取结果,而不需要回表查找数据

Range:范围索引扫描,比全表扫描要好,因为它只需要开始于索引的某一点,而结束于另一点

ref:表示使用了非唯一索引进行的等值比较,可能返回多个匹配的行。

equ_ref:使用了连接(join)查询,并且连接条件是通过唯一索引进行的等值比较

system:表示只有一行数据的表

passible_keys:查询时,可能用到的索引

keys:实际用到的索引

key_len:索引使用的字节数

ref:表示连接操作中使用的索引列

const:常数

rows:查询操作在执行时可能会扫描的行数,是个估计值,越小越好

filtered:最后查询出来的数据占所有服务器端(server)检查行数(rows)的百分比,值越大越好。

Extra:与查询操作相关的附加信息

Impossible WHERE:where子句的值总是false

Using where:使用了where,但在where上有字段没有创建索引

Using filesort:在对查询结果中的记录进行排序时,是可以使用索引的

Using index: 使用了覆盖索引,表示直接访问索引就足够获取到所需要的数据,不需要通过索引回表