explain里的Extra

Extra 是指包含不适合在explain的其他列中显示,但是却十分重要的额外信息。

Extra 的值有

  • Using index : 表示SQL语句使用了覆盖索引(在索引列中直接得到结果,不用回表),查询效率最高。eg:explain select id from test;
  • Using where : 表示搜到记录后进行了后过滤,如果查询未使用索引,作用只是提醒mysql使用了where过滤结果集。
  • Using temporary:表示mysql使用了临时表保存中间结果。常见与排序order by 和分组 group by。
  • Using filesort : 表示mysql无法使用索引直接完成排序,用缓冲空间来进行排序。(order by 的字段为非索引)
  • Using join buffer:表示在获取连接条件时没有用到索引,且需要连接缓冲区来存储中间结果。
  • Impossible where:表示where子句值为false,不能获取到任何元组。eg:SELECT * FROM t_user WHERE id = '1' and id = '2';
  • Using index condition:表示二级索引使用了like查找

参考:https://blog.csdn.net/why15732625998/article/details/80388236https://juejin.im/post/5d75abcb6fb9a06b0d7cabb3

原文地址:https://www.cnblogs.com/smallzhen/p/12783146.html