美文网首页
mysql执行计划explain type和extra

mysql执行计划explain type和extra

作者: 汪作新 | 来源:发表于2020-05-23 13:51 被阅读0次

mysql执行计划,搞定type和extra就能优化大部分sql了。type为主,extra为辅。


type:

system 表只有一行,MyISAM引擎。

const 常量连接,表最多只有一行匹配,通用用于主键或者唯一索引比较时

eq_ref 每次与之前的表合并行都只在该表读取一行,这是除了system,const之外最好的一种,特点是使用=,而且索引的所有部分都参与join且索引是主键或非空唯一键的索引

ref 如果每次只匹配少数行,那就是比较好的一种,使用=或<=>,可以是左覆盖索引或非主键或非唯一键

fulltext 全文搜索

ref_or_null 与ref类似,但包括NULL

index_merge 表示出现了索引合并优化(包括交集,并集以及交集之间的并集),但不包括跨表和全文索引。这个比较复杂,目前的理解是合并单表的范围索引扫描(如果成本估算比普通的range要更优的话)

unique_subquery 在in子查询中,就是value in (select…)把形如select unique_key_column的子查询替换。PS:所以不一定in子句中使用子查询就是低效的!

index_subquery 同上,但把形如”select non_unique_key_column“的子查询替换

range 常数值的范围

index 索引树扫描。a.当查询是索引覆盖的,即所有数据均可从索引树获取的时候(Extra中有Using Index);b.以索引顺序从索引中查找数据行的全表扫描(无 Using Index);c.如果Extra中Using Index与Using Where同时出现的话,则是利用索引查找键值的意思;d.如单独出现,则是用读索引来代替读行,但不用于查找

all 全表扫描(full table scan)


extra:

Using index  索引最优

Using index condition  命中索引,但是查询的列不在索引树中,导致需要查找实际行记录,看情况优化

Using index where 只有where,可能没走索引,结合type看情况优化

Using index filesort 排序优化order by,加索引,需要优化

Using temporary 临时表,需要优化

Using join buffer (Block Nested Loop) 两个关联表join,关联字段均未建立索引,需要优化

null 为空时需要去type找原因


相关文章

  • mysql执行计划explain type和extra

    mysql执行计划,搞定type和extra就能优化大部分sql了。type为主,extra为辅。 type: s...

  • Mysql优化

    MySQL 执行计划 主要就是关注字段 key type Extra key null 没有用索引...

  • MYSQL执行计划字段详解

    Mysql查看执行计划 explain + sql :输出执行计划。explain extended + sql ...

  • Mysql优化之explain详解

    关键词: mysql explain sql优化 执行计划 简述:explain为mysql提供语句的执行计划信息...

  • mysql 临时表

    EXPLAIN 执行计划中 Extra中有包含using temptable的话就会创建临时表。

  • mysql执行计划字段解释

    一、mysql执行计划表头 其中最重要的字段为:id、type、key、rows、Extra 二、各个字段的解释 ...

  • MySQL执行计划(explain)分析

    MySQL执行计划(explain)分析 EXPLAIN支持对SELECT、UPDATE、INSERT、REPLA...

  • MySQL查询优化解读

    执行计划解释 执行计划字段解释 执行计划字段取值含意 TYPE KEY ROWS Extra 分页查询优化 原因分...

  • Mysql - Explain

    Mysql - Explain explain + 查询sql可以生成一个执行计划,可以通过执行计划来进行sql优...

  • MySQL explain extra

    MySQL执行计划中,extra可以展示执行的一些细节,比如索引下推,覆盖索引,排序等信息,为索引优化提供了更完整...

网友评论

      本文标题:mysql执行计划explain type和extra

      本文链接:https://www.haomeiwen.com/subject/yadkahtx.html