mysql中explain的type的解释

虽然 explain返回的结果项很多,这里我们只关注三种,分别是type,key,rows。其中key表明的是这次查找中所用到的索引,rows是指这次查找数据所扫描的行数。而type则是本文要详细记录的连接类型,前两项重要而且简单,无需多说。

 type -- 连接类型

all

这便是所谓的“全表扫描”,

range

range指的是有范围的索引扫描,相对于index的全索引扫描,它有范围限制,因此要优于index。关于range比较容易理解,需要记住的是出现了range,则一定是基于索引的。同时除了显而易见的between,and以及'>','<'外,in和or也是索引范围扫描。

mysql中explain的type的解释_第1张图片

 mysql中explain的type的解释_第2张图片

 

ref

出现该连接类型的条件是: 查找条件列使用了索引而且不为主键和unique。其实,意思就是虽然使用了索引,但该索引列的值并不唯一,有重复。

mysql中explain的type的解释_第3张图片mysql中explain的type的解释_第4张图片

 当atype作为条件时,type是ref连接类型的,因为atype有大量重复。

 

const

通常情况下,如果将一个主键放置到where后面作为条件查询,mysql优化器就能把这次查询优化转化为一个常量。至于如何转化以及何时转化,这个取决于优化器。

const案例见上一篇文章 https://blog.csdn.net/xuehuagongzi000/article/details/78245180

 

 

 

 

 

 

 

你可能感兴趣的:(mysql优化)