MySQL的EXPLAIN的EXTRA

≡放荡痞女 提交于 2019-12-07 17:44:49

MySQL查询优化器执行查询的过程中对查询计划的重要补充信息。

(1)using where

使用了where子句来过滤元组


(2)using temporary

用临时表保存中间结果,常用于GROUP BY 和 ORDER BY操作中

(3)using filesort

使用文件完成排序操作,这是可能是ordery by,group by语句的结果,这可能是一个CPU密集型的过程,可以通过选择合适的索引来改进性能,用索引来为查询结果排序。


(4)using index

不需要读取数据文件,从索引树(索引文件)中即可获得信息。如果同时出现using where,表明索引被用来执行索引键值的查找,没有using where,表明索引用来读取数据而非执行查找动作。


(5)using join buffer

使用了连接缓存:

Block Nested Loop,连接算法是块嵌套循环连接


Batched Key Access,连接算法是批量索引连接


(6)impossible where

where子句的值总是false,不能用来获取任何元组


(7)select tables optimized away

在没有GROUP BY子句的情况下,基于索引优化MIN/MAX操作,或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化。


(8)distinct

优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!