Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结

前言

对于MySQL执行计划的获取,我们可以通过explain方式来查看,explain方式看似简单,实际上包含的内容很多,尤其是输出结果中的type类型列。理解这些不同的类型,对于我们SQL优化举足轻重。今天主要介绍一下常见的type结果及代表的含义,并且通过同一个SQL语句的性能差异,说明建对索引多么重要。Explain结果中的type字段代表什么意思?MySQL的官网解释非常简洁,只用了3个单词:连接类型(the join type)。它描述了找到所需数据使用的扫描方式。

一、EXPLAIN 语句中type列的值

类型 含义
system 表只有一行
const 表最多只有一行匹配,通常用于主键或唯一索引比较时
eq_ref 每次与之前的表合并行都只在该表读取一行,这是除了system,const之外最好的一种,特点是使用=,而且索引的所有部分都参与join并且索引是主键或非空唯一建的索引
ref 如果每次匹配少数行,那就是比较好的一种,使用=或<=>,可以是覆盖索引或非主键或非唯一建
fulltext 全文搜索
ref_or_null 与ref类似,但包括NULL
index_merge 表示出现了索引合并优化(包括交集,并集以及交集之间的并集),但不包括跨表和全文索引。这个比较复杂,目前的理解是

你可能感兴趣的:(Mysql)