美文网首页
MySQL执行计划怎么看(摘抄)

MySQL执行计划怎么看(摘抄)

作者: 吃掉夏天的怪物 | 来源:发表于2021-04-20 11:28 被阅读0次

执行计划就是sql的执行查询顺序,以及如何使用索引查询,返回的结果集的行数
EXPLAIN SELECT * fom A where X =? and Y =? EXPLAIN加上查询语句

执行计划.png
  1. id: 是一个有顺序的编码,是查询的顺序号,有几个select就显示几行。id的顺序就是按select出现的顺序增长的。id列的值越大执行优先级越高越先执行,id列的值相同则从上往下执行,id列的值为NULL最后执行。

2.selectType 表示查询中每个select子句的类型

  • SIMPLE: 表示此查询不包含UNION查询或子查询
  • PRIMARY: 表示此查询是最外层的查询(包含子查询)
  • SUBQUERY: 子查询中的第一个SELECT
  • UNION:表示此查询是UNION的第一个或随后的查询
  • DEPENDENT UNION: UNION中的第二个或后面查询语句,取决于外面的查询
  • UNION RESULT, UNION的结果
  • DEPENDENT SUBQUERY: 子查询中的第一个SELECT,取决于外面的查询,即子查询依赖于外层的查询的结果。
  • DERIVED: 衍生,表示导出表的SELECT(FRON子句的子查询)
  1. table: 表示该语句查询的表

4.⭐type:优化sql的重要字段,也是我们判断sql性能和优化程度的重要指标。他的取值类型范围:

  • const:通过索引一次命中,匹配一行数据
  • system:表中只有一行记录,相当于系统表
  • eq_ref: 唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配
  • ref:非唯一性索引扫描,返回匹配某个值的所有
  • range:只检索给定范围的行,使用一个索引来选择行,一般用between、<、>;
  • index: 只遍历索引树
  • ALL: 表示全表扫描,这个类型的查询是性能最差的查询之一。那么基本就是随着表的数量增多,执行效率越慢。

执行效率:
ALL < index < range < ref < eq_ref < const < system。最好是避免ALL和index

  1. possible_keus: 它表示Mysql在执行sql语句的时候,可能用到的索引信息,仅仅是可能,实际不一定会用到。
    6.key:此字段是mysql在当前查询时所真正用到的索引。他是possible_keys的子集
    7.key_len: 表示查询优化器使用了索引的字节数,这个字段可以评估组合索引是否完全被使用,这也是我们优化sql时,评估索引的重要指标。
  2. rows: mysq;查询优化器根据统计信息,估算该sql返回结果集需要扫描读取的行数,这个值相当重要,索引优化之后,扫描读取的行数越多,说明索引设置不对,或者字段传入类型之类的问题,说明要优化空间越大。
  3. filtered: 返回结果的行占需要读到的行(rows列的值)的百分比,就是百分比越高,说明需要查询到的数据越准确,百分比越小,说明查询到的数据量大,而结果集很少。
  4. extra
  • using filesort: 表示mysql对结果集进行外部排序,不能通过索引排序达到排序效果。一般有using filesort都建议优化去掉,因为这样查询cpu资源消耗大,延时大。
  • using index: 覆盖索引扫描,表示查询在索引树中就可查找所需数据,不用扫描表数据文件,往往说明性能不错。
  • using temporary: 查询有使用临时表,一般出现于排序,分组和多表join的情况,查询效率不高,建议优化。
  • using where: sql使用了where过滤,效率较高。

相关文章

  • MySQL执行计划怎么看(摘抄)

    执行计划就是sql的执行查询顺序,以及如何使用索引查询,返回的结果集的行数EXPLAIN SELECT * fom...

  • MySQL源码解析之执行计划

    MySQL源码解析之执行计划 MySQL执行计划介绍 MySQL执行计划代码概览 MySQL执行计划总结 一、My...

  • Mysql优化之explain详解

    关键词: mysql explain sql优化 执行计划 简述:explain为mysql提供语句的执行计划信息...

  • MYSQL执行计划字段详解

    Mysql查看执行计划 explain + sql :输出执行计划。explain extended + sql ...

  • MySQL的执行计划

    MySQL的执行计划 什么是执行计划? 执行计划通常是开发者优化SQL语句的第一步。MySQL在解析SQL语句时,...

  • 索引

    一文说尽 MySQL 优化原理MySQL 索引管理与执行计划

  • MySQL进阶之路--EXPLAIN执行计划详解

    执行计划简介 执行计划是指一条SQL语句在经过MySQL查询优化器的优化会后,具体的执行方式。MySQL为我们提供...

  • MySQL执行计划

    MySQL执行计划[https://www.jianshu.com/p/c68cd839cf26] 执行计划,简单...

  • Mysql执行计划功能详解

    Mysql执行计划使用详解 在Mysql调优过程中其中最关键的一点,就是正确使用执行计划,从而查看SQL语句的具体...

  • Mysql - Explain

    Mysql - Explain explain + 查询sql可以生成一个执行计划,可以通过执行计划来进行sql优...

网友评论

      本文标题:MySQL执行计划怎么看(摘抄)

      本文链接:https://www.haomeiwen.com/subject/sbzglltx.html