mysql 的explain关键字解析

执行explain+sql会出现一张表,该表包括很多一下列:

1.id
这个id不是唯一的。
1.1 id相同就从上往下执行;
1.2 id不同,数字大的先执行;
1.3 id相同又不用;
2.select_type
2.1 simple 只涉及到一张表的查询;
2.2 primary 复杂查询的最外层查询;
2.3 derived 在from后面的子查询;
2.4 subquery 在select或者where后面的子查询;
2.5 union 出现在union后的select语句;
2.6 union all 从union表获取的结果;
3.table
显示这一行的数据是哪张表的
4.type
4.1 system 单表单条记录
4.2 const 单表多记录,但是where过滤后只可能出现一条数据,就是唯一索引字段等于多少;
4.3 eq_ref
4.4 ref where后面使用到了非唯一索引字段,这个字段等于多少,没有指定范围;
4.5 range 使用到了索引(不管唯一还是非唯一),并且这个索引是有范围的;
4.6 index 只查建立了索引的字段;
4.7 all 全表扫描;
5. possible_key
若查询的字段建立了索引,则该索引会显示出来;
6.key
实际上使用到的索引;
7.key_len
使用到的索引占的字节数;
8.ref
显示索引的哪一列被使用了,也有可能是一个常数;
9.rows
mysql在查询时扫描的行数;
10.Extra
10.1 using filesort 坏事(九死一生)
10.2 using temporary 坏事(必死无疑)
10.3 using index 好事
10.4 using where
10.5 using join buffer 好事
10.6 impossible where where后面的条件恒为false

发布了29 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/shuoyuechenxing/article/details/104712666
今日推荐