[MySQL]explain语句中type字段的具体解释

以下排序从最优到最差
system:表内只有一行数据。
const:最多只会有一条记录匹配,常用于主键或者唯一索引为条件查询。
eq_ref:当连接使用的索引为主键和唯一时会出现。
ref:使用普通索引 = 或 <=> 运算符进行比较将会出现。
fulltext:使用全文索引。
ref_or_null:跟 ref 类型类似,只是增加了 null 值的判断,实际用的不多。语句为 where name = ‘kaka’ and name is null,name 为普通索引。
index_merge:查询语句使用了俩个以上的索引,常见在使用 and、or 会出现,官方文档将此类型放在 ref_or_null 之后,但是在很多的情况下由于读取索引过多性能有可能还不如 range。
unique_subquery:用于 where 中的 in 查询,完全替换子查询,效率更高。语句为 value IN (SELECT primary_key FROM single_table WHERE some_expr)
index_subquery:子查询中的返回结果字段组合是一个索引(或索引组合),但不是一个主键或唯一索引。
range:索引范围查询,常见于使用 =,<>,>,>=,<,<=,IS NULL,<=>,BETWEEN,IN() 或者 like 等运算符的查询中。
index:索引全表扫描,把索引从头到尾扫一遍。
all:全表扫描,性能最差。

开源作品

GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
github地址:go-fly
官网地址:https://gofly.sopans.com

赞赏作者

微信交流

原文地址:https://www.cnblogs.com/taoshihan/p/14495580.html