首页 > 数据库技术 > 详细

Mysql执行计划 Type值的关系

时间:2020-03-29 14:59:55      阅读:72      评论:0      收藏:0      [点我收藏+]
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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!