使用explain命令可以查看一条查询语句的执行计划,这篇文章记录一下查询计划的各个属性的值极其含义.
那么我们按照图中的顺序逐个字段的看一下.
本文采用官网的数据库样本,下载地址:[MySQL官方数据库](https://dev.mysql.com/doc/index-other.html)
一组数据,表示任务被执行的顺序,序号越大的任务越先执行.
id | select_type | description | |
---|---|---|---|
1 | SIMPLE | 不包含任何子查询或union等查询 | |
2 | PRIMARY | 包含子查询最外层查询就显示为 PRIMARY | |
3 | SUBQUERY | 在select或 where字句中包含的查询 | |
4 | DERIVED | from字句中包含的查询 | |
5 | UNION | 出现在union后的查询语句中 | |
6 | UNION RESULT | 从UNION中获取结果集,例如上文的第三个例子 |
查询的数据表,当从衍生表中查数据时会显示 x 表示对应的执行计划id。
表的分区字段,没有分区的话则为null.
这条查询语句访问数据的类型.所有可取值的范围:
这次查询可能使用的索引,但是不一定是真正使用的索引.
查询真正使用的索引,若没有使用索引,显示为NULL.
使用索引的长度,在使用联合索引的时候可以根据这一列来推算使用了哪些最左前缀索引.
计算方式:
not null
,则需要加一个字节.表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值
返回估算的结果集数目,并不是一个准确的值。
包含一些其他信息,常见的有以下几种:
完。
2019-06-03 完成
以上皆为个人所思所得,如有错误欢迎评论区指正。
欢迎转载,烦请署名并保留原文链接。
联系邮箱:huyanshi2580@gmail.com