艾林博客 - 技术交流与经验分享的个人博客

Mysql数据库 Explain执行语句中的type类型

Liner51

Liner51

1年前更新

sql语句编写完成以后,要习惯用explain分析SQL语句根据结果进而进行sql方面的优化处理,此文章介绍explain 下type类型的理解和介绍

type类型 介绍
All MySQL将遍历全表以找到匹配的行
index 查找所有的索引树,比ALL要快的多,因为索引文件要比数据文件小的多,ALL不使用任何索引,进行全表扫描,性能最差
range 查找某个索引的部分索引,一般在where子句中使用 < 、>、in、between等关键词,只检索给定范围的行,属于范围查找
ref 查找非唯一性索引,返回匹配某一条件的多条数据,数据返回可能是多条,属于精确查找
eq_ref 查找唯一性索引,返回的数据至多一条(0或者1条),属于精确查找
const 表示通过索引一次找到了,const用于primary key 或者 unique 索引。因为只匹配一行数据,所以很快,将主键置于where列表中,mysql 就能将该查询转换成一个常量。
system const的特例,仅返回一条数据的时候
NULL MySQL在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查找完成。

从上往下越来越好使用索引的语句要达到range 级别

system > const > eq_ref > ref > range > index > All

The End
案例分析

喜欢就支持一下把!

(3)
一日一钱,千日千钱,绳锯木断,水滴石穿。

班固

为您推荐