1、Extra字段含义
包含不适合在其他列中显示但十分重要的额外信息。
2、Extra字段类型— Using filesort
说明mysql会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。
MySQL中无法利用索引完成的排序操作称为“文件排序”。
出现filesort的情况:
优化后,不再出现filesort的情况:
查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。
3、Extra字段类型— Using temporary
使了用临时表保存中间结果,MySQL在对查询结果排序时使用临时表。常见于排序 order by 和分组查询 group by。
优化前存在 using temporary 和 using filesort
优化过后 using temporary 和 using filesort 不在,性能发生明显变化:
4、Extra字段类型— USING index
表示相应的select操作中使用了覆盖索引(Covering Index),避免访问了表的数据行,效率不错!
如果同时出现using where,表明索引被用来执行索引键值的查找;
如果没有同时出现using where,表明索引只是用来读取数据而非利用索引执行查找。
利用索引进行了排序或分组。
5、Extra字段类型— Using where
表明使用了where过滤。
6、Extra字段类型— using join buffer
使用了连接缓存。
7、Extra字段类型— impossible where
where子句的值总是false,不能用来获取任何元组。
8、Extra字段类型— select tables optimized away
在没有GROUPBY子句的情况下,基于索引优化MIN/MAX操作或者
对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,
查询执行计划生成的阶段即完成优化。