一文看懂MySQL的explian执行计划

表:

数据:

例如:explain select * from t where a = 2;

各个字段解释:

select_type

表示查询中每个 select 子句的类型(简单 OR 复杂)

type

对表的访问方式,表示 MySQL 在表中找到所需行的方式,又称访问类型

Extra

其他的额外的执行计划信息,在该列展示:

  • Using index:该值表示相应的 SELECT 操作中使用了覆盖索引(Covering Index)

  • Using index condition:第一种情况是搜索条件中虽然出现了索引列,但是有部分条件无法使用索引,会根据能用索引的条件先搜索一遍再匹配无法使用索引的条件,回表查询数据;第二种是使用了索引下推

  • Using where:表示存储引擎收到记录后进行后过滤(Post-filter),如果查询操作未能使用索引,Using where 的作用是提醒我们 MySQL 将用 where 子句来过滤结果集,即需要回表查询

  • Using temporary:表示 MySQL 需要使用临时表来存储结果集,常见于排序和分组查询

  • Using filesort:对数据使用外部排序算法,将取得的数据在内存中进行排序,这种无法利用索引完成的排序操作称为文件排序

  • Using join buffer:说明在获取连接条件时没有使用索引,并且需要连接缓冲区来存储中间结果

  • Impossible where:说明 where 语句会导致没有符合条件的行,通过收集统计信息不可能存在结果

  • Select tables optimized away:说明仅通过使用索引,优化器可能仅从聚合函数结果中返回一行

  • No tables used:Query 语句中使用 from dual 或不含任何 from 子句

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值