查询数据时必须查找的数据行数,当数据表的存储引擎为InnoDB时,值为MySQL的预估值。
2.11 Extra
在执行查询语句时额外的详细信息
Using index:表示MySQL将使用覆盖索引,这发生在对表的请求列都是同一索引的部分的时候,返回的列数据只使用了索引中的信息,而没有再去访问表中的行记录。是性能高的表现。
Using index condition:在5.6版本后加入的新特性索引下推(Index Condition Pushdown,ICP),在索引遍历过程中,对索引中包含的字段先做判断(即使该字段没有使用到索引),直接过滤掉不满足条件的记录,减少回表次数。
Using where:意味着MySQL服务器将在存储引擎检索行后再进行过滤。就是先通过索引读取整行数据,再按 WHRER条件进行检查,符合就留下,不符合就丢弃。查询的列未被索引覆盖。
Using temporary:MySQL需要创建一张临时表来中间结果并进一步处理,比如union、group by、distinct等,出现这种情况一般是要进行优化的,首先是想到用索引来优化。
Using filesort:MySQL会对结果使用一个外部索引排序,而不是按索引次序从表里读取行,即filesort(文件排序)。此时mysql会根据联接类型浏览所有符合条件的记录,并保存排序关键字和行指针,然后排序关键字并按顺序检索行信息。这种情况下一般也是要考虑使用索引来优化的。filesort有两种,一种是内存排序,一种是磁盘排序,无法得知。