当前位置:   article > 正文

mysql-执行计划_mysql执行计划展示方式

mysql执行计划展示方式

N.1 什么是执行计划

1)执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。在MySQL中使用 explain 关键字来查看。

2)如下所示:运行下面面的sql语句后你会看到,下面的表头信息:

id | table | type | possible_keys | key | key_len | ref | rows | Extra

————————————————————————

————————————————————————

————————————————————————

3)计划分为了3类:

(1)常规执行计划语法:

explain select * from user;

(2)扩展执行计划的语法:

explain 的extended 扩展能够在原本explain的基础上额外的提供一些查询优化的信息,

如 explain extended select * from user;

(3)分区表的执行计划语法:

如 explain partitions select * from user;

N.2 表头的信息解释

N.2.1 id查询的顺序

id不同情况

执行顺序

id相同

执行顺序由上至下

id不同

值越大优先级越高,越先被执行

id为null

表示一个结果集,不需要使用它查询,常出现在包含union等查询语句中

N.2.2 select_type查询类型

————————————————————————

————————————————————————

N.2.3 table查询涉及到的表

1)如果查询使用了别名,那么这里显示的是别名,如果不涉及对数据表的操作,那么这显示为null,如果显示为尖括号括起来的就表示这个是临时表,后边的N就是执行计划中的id,表示结果来自于这个查询产生。如果是尖括号括起来的<union M,N>,与类似,也是一个临时表,表示这个结果来自于union查询的id为M,N的结果集。

N.2.4 type访问类型

————————————————————————

————————————————————————

1)性能从好到差依次为:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL,除了ALL之外,其他的type都可以使用到索引,除了index_merge之外,其他的type只可以用到一个索引。

所以,如果通过执行计划发现某张表的查询语句的type显示为ALL,那就要考虑添加索引,或者更换查询方式,使用索引进行查询。

N.2.5 possible_keys可能使用的索引

1)注意不一定会使用。查询涉及到的字段上若存在索引,则该索引将被列出来。当该列为 NULL时就要考虑当前的SQL是否需要优化了。

N.2.6 key实际使用的索引

1)显示MySQL在查询中实际使用的索引,若没有使用索引,显示为NULL。

TIPS:查询中若使用了覆盖索引(覆盖索引:索引的数据覆盖了需要查询的所有数据),则该索引仅出现在key列表中。select_type为index_merge时,这里可能出现两个以上的索引,其他的select_type这里只会出现一个。

N.2.7 key_length索引长度

1)char()、varchar()索引长度的计算公式:

(Character Set:utf8mb4=4,utf8=3,gbk=2,latin1=1) * 列长度 + 1(允许null) + 2(变长列)

N.2.8 ref连接匹配条件

1)表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值,如果是使用的常数等值查询,这里会显示const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为func

N.2.9 rows估算的结果集数量

1)返回估算的结果集数目,注意这并不是一个准确值。

N.2.10 extra额外信息

————————————————————————

————————————————————————

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/755255
推荐阅读
相关标签
  

闽ICP备14008679号