MySQL之explain解析SQL

166 阅读1分钟

image.png

字段解析

1.id:代表表的执行顺序,id值越大则越先执行,相同则从上往下依次执行

2.select_type:代表查询的类型:

(1)simple:简单查询
(2)primary:包含子查询的最外层为主查询
(3)subquery:子查询
(4)derived:衍生,在from列表中包含的子查询被标记为DERIVED,MySQL会递归执行子查询,将结果放入临时表中
(5)unionunion后的select标记为union
(6)union resultunion的结果集

3.table:表明是哪张表

4.type:

从最好到最差的次序:system->const->eq_ref->ref->range->index->ALL

5.possible_key与key :

(1)possible_key:显示可能应用正在这张表中的索引,一个或多个
(2)key:实际使用的索引

6.key_len:表示索引字段的最大可能长度,越小越好。

7.ref:显示索引的哪一列被使用

    [库].[表].[字段],[const(表示常量)]
    

8.rows:大致估算出所有读取的行数

9.extra:重要的额外信息

1Using Filesort:无法利用索引完成的排序,即排序没走索引需要优化
(2Using temporary:创建临时表,如:order by , group by 
     注:创建临时表很拖性能,在会创建临时表的时候需要按索引顺序进行分组,排序
(3Using index:使用了索引
(4Using where5Using join buffer:使用了连接缓存
(6)impossible where:where 字段为false