MySQL高级中explain之type的介绍

type类型

从最好到最差依次是:

system > const > eq_ref > ref > range > index > all

对以上分类的详细介绍表格如下:

type类型 详细介绍
system 表只有一行记录(等于系统表),这是const类型的特例,平时不不会出现,这个可以忽略不计
const 表示通过索引一次就找到了,const用于比较primary key或者 unique索引。因为只匹配一行数据,所以很快,如将主键置于where列表中,MySQL就能将该查询转为一个常量
eq_ref 唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配,常见于主键或唯一索引扫描
ref 非唯一性索引扫描,返回匹配某个单独值的所有行,本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而它可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体
range 只检索给定范围的行,使用一个索引来选择行,key列显示使用了哪个索引,一般就是在你的where语句种出现了between、<、>、in等的查询,这种范围扫描索引比全表扫描要好,因为只需要开始与索引的某一点,而结束与另一点,不用扫描全部索引
index Full Index Scan,index与ALL区别为index类型只遍历索引树,这通常比ALL快,因为索引文件通常比数据文件小,(也就是说虽然all和index都是读全表,但index是从索引中读取的,而all是从硬盘中读的,后者与磁盘I/0的交互次数较多)  
all Full Table Scan, 将遍历全表以找到匹配的行

备注:一般来说,得保证查询至少达到range级别,最好能达到ref

posted @   没有你哪有我  阅读(285)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示