您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Mysql执行计划 Type值的关系

bubuko 2022/1/25 20:01:47 mysql 字数 1929 阅读 628 来源 http://www.bubuko.com/infolist-5-1.html

type说明 ALL 全数据表扫描 index 全索引表扫描 RANGE 对索引列进行范围查找 INDEX_MERGE 合并索引,使用多个单列索引搜索 REF 根据索引查找一个或多个值 EQ_REF 搜索时使用primary key 或 unique类型 CONST 常量,表最多有一个匹配行,因为仅 ...
type 说明
ALL 全数据表扫描
index 全索引表扫描
RANGE 对索引列进行范围查找
INDEX_MERGE 合并索引,使用多个单列索引搜索
REF 根据索引查找一个或多个值
EQ_REF 搜索时使用primary key 或 unique类型
CONST 常量,表最多有一个匹配行,因为仅有一行,在这行的列值可被优化器剩余部分认为是常数,const表很快,因为它们只读取一次。
SYSTEM 系统,表仅有一行(=系统表)。这是const联接类型的一个特例。

 

 

 

 

 

 

性能:all < index < range < index_merge < ref_or_null < ref < eq_ref < system/const
性能在 range 之下基本都可以进行调优

补充说明:

system:表只有一行记录,相当于系统表(通常此类表单用来作为系统参数等常用且不经常修改的)

const:通过索引一次就找到,只匹配一行数据

eq_ref: 唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配

ref:非唯一性索引扫描,返回匹配某个单独值的所有行(用于=、<、> 操作符带索引的列)

index_merge: 很多人不太深入理解index_merge,并且只会在mysql5.7及以上版本会出现,这里引用CSDN文章给大家一个详细的说明:https://www.cnblogs.com/digdeep/p/4975977.html

index: 这种连接类型只是另外一种形式的全表扫描,只不过它的扫描顺序是按照索引的顺序

all:全表扫描,性能最差 

Mysql执行计划 Type值的关系

原文:https://www.cnblogs.com/yanbinfeng1995/p/12592289.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶