首页 > 代码库 > MySQL执行计划各列含义

MySQL执行计划各列含义

table:显示这一行的数据是关于哪张表的。
 
type:这是重要的列,显示连接使用了何种类型。从性能最好到最差的连接类型为const、eq_reg、ref、range、index、ALL。
  const:程度查询,一般是对于主键或唯一索引查询。
  eq_reg:范围查询,一般是对于主键或唯一索引的范围查询。
  ref:常见于连接的查询中,如一个表是基于某一个索引的查询。
  range:基于索引的范围查询。
  index:基于索引的扫描。
  ALL:基于表扫描。
 
possible_keys:显示可能应用在这张表中的索引。如果为空,则没有可能的索引。
 
key:实际使用的索引。如果为NULL,则没有使用索引。
 
key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好。(原因:MySQL的每次读取都以页为单位,如果页中存储的数量越大,则查询效率越高)
 
ref:显示索引的哪一列被使用了,如果可能的话,是一个常数。
 
rows:MySQL认为必须检查的用来返回请求数据的行数(表扫描的数据)。
 

extra列需要注意的返回值:

Using filesort:看到这个的时候,查询就需要优化了。MySQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行。
Using temporary:看到这个的时候,查询需要优化了。这里,MySQL需要创建一个临时表来存储结果,这通常发生对不同的列集进行order by上,而不是group by上。

MySQL执行计划各列含义