explain sql type字段解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39053211/article/details/77801697

type表示访问索引的类型,下面就按照效率高低的顺序来说明一下:

system:表只有一行:system表。这是const连接类型的特殊情况
const:
表中的一个记录的最大值能够匹配这个查询(索引可以是主键或惟一索引)。因为只有一行,这个值实际就是常数,因为MYSQL先读这个值然后把它当做常数来对待
eq_ref:
在连接中,MYSQL在查询时,从前面的表中,对每一个记录的联合都从表中读取一个记录,它在查询使用了索引为主键或惟一键的全部时使用
ref :这也是一种索引访问,它返回所有匹配某个单独值的行,然而,它可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体。
range:这个一般就是在你的where语句中出现了between或者“>”这种符号的时候会出现这个。这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引。
Index:含义仅仅是局限在扫描全表的顺序是按照索引顺序扫描的,仅仅是按索引顺序去扫描的(比ALL更好,因为索引一般小于表数据)
All:这个就是所谓的全表扫描,没有用到任何的index,mysql就是从头到尾把整个表遍历一边,找到所需要的数据行。效率是最差的

extra行的部分解析:
using index :使用覆盖索引的时候就会出现
using where:在查找使用索引的情况下,需要回表去查询所需的数据
using index & using where:查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据

“`

猜你喜欢

转载自blog.csdn.net/weixin_39053211/article/details/77801697