MySQL小白必备:详解explain

使用一个explain语句来分析sql的执行计划结果显示如下

id 不用解释了,编号;
select_type 查询类型,simple最好,详解可以看select_type详解
table 说明这个查询是关于哪张表的

type 重要!!显示此语句用了何种类型,最好到最差分别为:
①const(常数查找,用到了主键和唯一索引)
②eq_reg(范围查找,唯一索引,between and)
③ref(连接join查询)
④range(基于索引的范围查找)
⑤index(索引的扫描查找)
⑥ALL(全表扫描)

possible_key 显示可能应用在这张表中的索引,如果为空,则没有可能的索引

key 这个语句实际使用的索引,如果为null,则没有使用索引

key_len 实际使用的索引长度,越短越好(在不损失精确性前提下)

ref 显示索引的那一列被使用了,如果可能的话,是一个常数

rows mysql 认为必须检查的用来返回请求数据的行数

extra的信息
using filesort 看到这个时候,查询就要优化了,说明MySQL用了文件排序的方式来进行优化,在orderBy中比较常见。MySQL需要进行额外的步骤来发现如何对返回的行进行排序。他根据链接类型以及存储排序键值和匹配条件的全部行指针来排序全部行

using temporary 使用了临时表来查询,看到这个也要优化,这里说明mysql需要创建一个临时表来存储结果,这通常发生在对不同的列进行order by 上。

猜你喜欢

转载自blog.csdn.net/qq_33679504/article/details/80342650