前言
对于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