![2ee34b7f67ccfbceddf6471674115f30.png](https://i-blog.csdnimg.cn/blog_migrate/29949b702c491ef0807501ff3b6395e6.jpeg)
. ref
显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列上的值。
![9cb2a4c73877a60a9ddb8fa5d0999875.png](https://i-blog.csdnimg.cn/blog_migrate/c4d4495381bf18c50d8739cfe59ebd9a.png)
rows
rows列显示MySQL认为它执行查询时必须检查的行数。越少越好!
![32ec0c2d3b854f68d8fe70c4d35581bf.png](https://i-blog.csdnimg.cn/blog_migrate/6f887dcef8fe555ce1ed2edd045dcd41.png)
Extra
其他的额外重要的信息。
1 Using filesort
说明mysql会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。MySQL中无法利用索引完成的排序操作称为“文件排序”。
出现filesort的情况:
![468604c39ac84f91963bd73ebc993c79.png](https://i-blog.csdnimg.cn/blog_migrate/ca3c71979db23ce203203861da5051c3.jpeg)
优化后,不再出现filesort的情况:
![618ef62102ab35314bfac011f977fae1.png](https://i-blog.csdnimg.cn/blog_migrate/acfeacc24db2acb6d6ec8c81d69b6496.jpeg)
查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度。
2 Using temporary
使了用临时表保存中间结果,MySQL在对查询结果排序时使用临时表。常见于排序 order by 和分组查询 group by。
优化前:
![ae296aced7f895936a7e259d9eee4b04.png](https://i-blog.csdnimg.cn/blog_migrate/b4fa1e5744fd88863e11def388cedce8.jpeg)
优化后:
![d95b2e4971ee688428f4e4b4ef98119a.png](https://i-blog.csdnimg.cn/blog_migrate/4ede5480217ce2189c1bc3ca684d8200.jpeg)
3 Using index
Using index代表表示相应的select操作中使用了覆盖索引(Covering Index),避免访问了表的数据行,效率不错!
如果同时出现using where,表明索引被用来执行索引键值的查找;如果没有同时出现using where,表明索引只是用来读取数据而非利用索引执行查找。
利用索引进行了排序或分组。
4 Using where
表明使用了where过滤。
5 Using join buffer
使用了连接缓存。
![4c60d1f14684a1a7a0e6c8461f115ceb.png](https://i-blog.csdnimg.cn/blog_migrate/b09ab01ecdd597115e6722b756d56d0f.png)
6 impossible where
where子句的值总是false,不能用来获取任何元组。
![41ad5bbcb18faf7fac0a2105433563af.png](https://i-blog.csdnimg.cn/blog_migrate/a45aabba1c3b6c0aa7ed7f50a2d10ac8.png)
7 select tables optimized away
在没有GROUPBY子句的情况下,基于索引优化MIN/MAX操作或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。
在innodb中:
![73f33c8c170244d3ecbb945aeaf400fa.png](https://i-blog.csdnimg.cn/blog_migrate/b0dbdccd2b9cb998a2169f1f31159d9e.png)
在Myisam中:
![5ad3420eeac155ec369d3448f3e44494.png](https://i-blog.csdnimg.cn/blog_migrate/5b4573711125a52c95280ffc7e9fd43f.png)