广告
返回顶部
首页 > 资讯 > 数据库 >Explain详解
  • 473
分享到

Explain详解

Explain详解 2019-11-15 19:11:19 473人浏览 无得
摘要

执行计划中输出各列: table:查询语句中包含的表 id:查询语句中的每个SELECT都对应一个唯一id值,对于连接查询,id是相同的,第一条为驱动表,第二条为被驱动表;对于子查询来说,id可能不同,查询优化器可能将子查询转换为连

Explain详解

执行计划中输出各列:

  1. table:查询语句中包含的表

  2. id:查询语句中的每个SELECT都对应一个唯一id值,对于连接查询,id是相同的,第一条为驱动表,第二条为被驱动表;对于子查询来说,id可能不同,查询优化器可能将子查询转换为连接查询;对于uNIOn子句,会在内部建立临时表去重,因此出现id为null的结果。

  3. select_type: SIMPLE:查询语句不包含UNioN或子查询均算作SIMPLE类型

    PRIMARY:对于多个小查询组成的大查询,最左边的查询就是PRIMARY

    UNION:对于UNION和UNION ALL查询,除最左边查询均为UNION

    UNION RESULT:使用临时表完成去重工作时,针对临时表的查询即UNION RESULT

    SUBQUERY:子查询不能转换为semi-join且子查询时不相关子查询时,通过物化方案执行子查询时,该子查询的第一个SELECT关键字代表的查询就是SUBQUERY

    DEPENDENT SUBQUERY:子查询不能转换为semi-join且子查询时相关子查询时,该子查询的第一个SELECT关键字代表的查询就是DEPENDENT SUBQUERY

    DEPENDENT UNION:在UNION和UNION ALL大查询中,如果各个小查询均依赖于外层查询,除最左边的小查询,其余小查询均为DEPENDENT UNION

    DERIVED:对于采用物化的方式执行的包含派生表的查询,该派生表对应的子查询的select_type就是DERIVED

    MATERIALIZED:当查询优化器在执行包含子查询的语句时,选择将子查询物化之后与外层查询进行连接查询时,该子查询对应的select_type属性就是MATERIALIZED

    UNCACHEABLE SUBQUERY:对于外层的主表,子查询不可被物化,每次都需要计算(耗时操作)

    UNCACHEABLE UNION:UNION操作中,内层的不可被物化的子查询

  4. partitions:

  5. type:执行查询时的访问方法,包含InnoDB存储引擎进行单表访问的方法

    system:表中只有一条记录且该表的存储引擎统计数据是精确的

    const:根据主键或唯一二级索引进行等值匹配时

    eq_ref:连接查询时,被驱动表通过主键或唯一二级索引等值匹配进行访问

    ref:根据普通二级索引与常量匹配查询某个表

    fulltext:全文索引

    ref_or_null:根据普通二级索引与常量匹配且该索引列可以为null

    index_merge:使用索引合并进行查询

    unique_subquery:查询可以用到主键等值匹配且优化器将IN查询转EXISTS

    index_subquery:查询可以用到普通索引等值匹配且优化器将IN查询转EXISTS

    range:使用索引获取范围区间

    index:当使用覆盖索引,但需要扫描全部的索引记录时

    ALL:全表扫描

  6. possible_keys和key:可能使用到的索引和实际使用到的索引。可能使用到的索引越多,优化器计算查询成本也就越高,索引应该删除不使用的索引

  7. key_len:优化器使用索引执行查询时,索引记录的最大长度

  8. ref:当使用索引列等值匹配条件查询时,如果访问方法是const、eq_ref、ref、ref_or_null、unique_subquery、index_subquery之一时,ref标识与索引列做等值匹配的是什么。

  9. rows:表示预计需要扫描的索引记录行数。

  10. filtered:执行单表扫描时,驱动表扇出时满足搜索条件的记录数。

您可能感兴趣的文档:

--结束END--

本文标题: Explain详解

本文链接: https://www.lsjlt.com/news/6218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Explain详解
    执行计划中输出各列: table:查询语句中包含的表 id:查询语句中的每个SELECT都对应一个唯一id值,对于连接查询,id是相同的,第一条为驱动表,第二条为被驱动表;对于子查询来说,id可能不同,查询优化器可能将子查询转换为连...
    99+
    2019-11-15
    Explain详解
  • MySQL-Explain详解
    Explain介绍         在select语句之前增加explain关键字,执行后MySQL就会返回执行计划的信息,而不是执行sql。但如果from中包含子查询,MySQL仍会执行该子查询,并把子查询的结果放入临时表中。 ...
    99+
    2023-08-31
    mysql 数据库
  • Mysql Explain详解
    下面是使用 explain 的例子:  在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该...
    99+
    2018-07-28
    Mysql Explain详解
  • MySQL之Explain详解
    Explain工具介绍 使用Explain关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈。在select语句之前增加explain关键字,mysql会在查询上设置一个标记,执行查询会返回...
    99+
    2023-04-06
    MySQL Explain详解 Explain详解
  • MySQL Explain使用详解
    在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使...
    99+
    2022-10-18
  • MYSQL explain详解之range
    explain显示了MySQL如何使用索引来处理DML语句以及连接表,explain显示的信息可以帮助选择更好的索引和写出更优化的查询语句  2.EXPLAIN列的解释:table:显示...
    99+
    2022-10-18
  • Mysql中explain作用详解
    在MySQL中,EXPLAIN是一个用于分析查询语句的关键字。通过使用EXPLAIN,可以获取查询语句执行的详细信息,包括查询的执行...
    99+
    2023-08-14
    mysql
  • MYSQL:SQL优化之Explain详解
    抛问题: Explain是什么? 目录 一、Explain 1.1 explain作用 1.2 explain列说明 id select_type table partiitons type select_type possible_k...
    99+
    2023-10-22
    mysql sql 数据库 面试
  • Mysql explain 各参数详解
    id序号 select_type simple:即简单select 查询,不包含union及子查询; primary:最外层的 select 查询; union:表示此查询是 union 的第二或随后的查...
    99+
    2016-04-15
    Mysql explain 各参数详解
  • 详解mysql中explain的type
    导语: 很多情况下,有很多人用各种select语句查询到了他们想要的数据后,往往便以为工作圆满结束了。 这些事情往往发生在一些学生亦或刚入职场但之前又没有很好数据库基础的小白身上,但所谓闻道有先后,只要我...
    99+
    2022-05-24
    mysql explain mysql explain的type
  • MySQL索引优化Explain详解
    在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引...
    99+
    2022-05-12
    MySQL索引优化 MySQL Explain
  • MySQL执行计划EXPLAIN详解
    本文以MySQL 5.7 Reference Manual为主轴(翻译&取其精华)并结合网文百家之长整理而成,因为笔者水平有限,文中如有不准确之处请包涵,如转载请注明原文出处guocun...
    99+
    2022-10-18
  • mysql explain执行计划详解
    ...
    99+
    2022-10-18
  • 【MySQL】EXPLAIN 语句 各字段 详解
    EXPLAIN 语句 概貌 在连接查询的执行计划中: 每个表都会对应一条记录,这些记录的 id 列的值是相同的; 在包含子查询的执行计划中 :每个 select关键字都会对应一个唯...
    99+
    2023-10-27
    mysql 数据库
  • mysql索引篇explain命令详解
    目录前言keytypeExtra前言 mysql中的explain命令可以用来查看sql语句是否使用了索引,用了什么索引,有没有做全表扫描。可以帮助我们优化查询语句。explain出来的信息有10列,文章主要介绍type...
    99+
    2022-08-25
  • MySQL的执行计划详解(Explain)
    1、MySQL执行计划的定义 在 MySQL 中可以通过 explain 关键字模拟优化器执行 SQL语句,从而知道 MySQL 是如何处理 SQL 语句的。 2、MySQL整个查询的过程 • 客户端向 MySQL 服务器发送一条查询请求 ...
    99+
    2023-08-19
    mysql 数据库 java
  • MySQL进阶系列:一文详解explain
    explain有何用处呢: 为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。 ​ 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql...
    99+
    2019-12-13
    MySQL进阶系列:一文详解explain
  • MySQL EXPLAIN输出列的详细解释
    1. 简介 EXPLAIN语句提供有关 MySQL 如何执行语句的信息。 EXPLAIN与SELECT、DELETE、INSERT、REPLACE和UPDATE语句一起使用。 mysql> EXP...
    99+
    2022-05-30
    mysql explain输出列 mysql中explain的用法 mysql explain详解
  • Explain详解与索引优化实践
    为什么要用explain 使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是结构的性能瓶颈 如何使用explain 下面是使用 explain 的例子: 在 s...
    99+
    2014-11-15
    Explain详解与索引优化实践
  • mysql之explain使用详解(分析索引)
    explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 使用方法,在select语句前加上explain就可以了,如: ex...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作