index-E

Extra

包含不适合在其他列中显示但十分重要的额外信息

Using filesort 

index-E

查询中排序的字段,排序字段若通过索引去访问将大大提高排序速度

Using temporary 

index-E

使了用临时表保存中间结果,MySQL在对查询结果排序时使用临时表。常见于排序 order by 和分组查询 group by。

USING index

index-E

如果同时出现using where,表明索引被用来执行索引键值的查找;

index-E

如果没有同时出现using where,表明索引用来读取数据而非执行查找动作。

表示相应的select操作中使用了覆盖索引(Covering Index),避免访问了表的数据行,效率不错!
如果同时出现using where,表明索引被用来执行索引键值的查找;
如果没有同时出现using where,表明索引用来读取数据而非执行查找动作。

覆盖索引(Covering Index)

覆盖索引(Covering Index),一说为索引覆盖。

理解方式一:就是select的数据列只用从索引中就能够取得,不必读取数据行,MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖

理解方式二:索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了(或覆盖了)满足查询结果的数据就叫做覆盖索引。

注意:
如果要使用覆盖索引,一定要注意select列表中只取出需要的列,不可select *,
因为如果将所有字段一起做索引会导致索引文件过大,查询性能下降。

Using where

表明使用了where过滤

using join buffer

使用了连接缓存

impossible where

index-E

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