Extra
1、Using index
查询的列被索引覆盖,并且where筛选条件是索引的是前导列,Extra中为Using index。意味着通过索引查找就能直接找到符合条件的数据,无须回表。
注:前导列一般指联合索引中的第一列或“前几列”,以及单列索引的情况;这里为了方便理解我统称为前导列。
1、Using where
说明MySQL服务器将在存储引擎检索行后再进行过滤;即没有用到索引,回表查询。
可能的原因:
- 查询的列未被索引覆盖;
- where筛选条件非索引的前导列或无法正确使用到索引;
2、Using temporary
这意味着MySQL在对查询结果排序时会使用一个临时表。
3、Using filesort
说明MySQL会对结果使用一个外部索引排序,而不是按索引次序从表里读取行。
4、Using index condition
查询的列不全在索引中,where条件中是一个前导列的范围
5、Using where;Using index
查询的列被索引覆盖,并且where筛选条件是索引列之一,但不是索引的前导列或出现了其他影响直接使用索引的情况(如存在范围筛选条件等),Extra中为Using where; Using index,意味着无法直接通过索引查找来查询到符合条件的数据,影响并不大。