美文网首页
explain 参数详解

explain 参数详解

作者: code_nerd | 来源:发表于2017-10-27 09:21 被阅读0次

explain

explain 只能解释select查询,并不会对存储过程、insert、update、delete或其他语句做解释。可以通过重写非select查询,来利用explain

参数解释

id

标示select所属的行,如果在语句中没有子查询或者联合,那么只会有唯一的select

select_type

这一列显示了对应行是简单还是复杂。

  • SIMPLE
    simle 意味着查询不包含子查询或者联合,如查询包含任何复杂的子查询,则最外层被标记为primary

  • SUBQUERY
    包含在select中的子查询,被标记为subquery。意思是不再from子句中

  • DERIVED
    derived值表示包含在from子句的子查询中的select。

  • UNION
    在union中的第二个和随后的select被标记为union

  • UNION RESULT
    用来标记union 的匿名临时表检索结果的select

table

显示对应行正在访问的表。即表名 或者是表的别名

type

访问类型,mysql决定如何查找表中的行 从最差到最优 ALL、INDEX、RANGE、REF、eq_ref、const、system、NULL

  • ALL
    全表扫描,通常意味着mysql必须扫描整张表,从头到尾去找需要的行。

  • index
    这个跟全表扫描一样,只是mysql扫描表时,按索引的次序进行。主要的优点是避免了排序,最大缺点是按索引顺序读表,开销很大。

  • range
    范围扫描就是一个有限制的索引扫描。它开始于索引的某个点,返回匹配这个值域的行。

  • ref
    索引访问,它返回匹配某个值的行。

  • eq_ref
    使用这个索引查找,mysql知道最多只返回一条符合记录的条件。在使用唯一索引或主键查找时,能够看到。

  • const,system
    当mysql能对查询的某部分进行优化并转换成一个常量时,它就会使用这些访问类型。

  • null
    这种访问方式意味着mysql能在优化阶段分解查询语句,在执行阶段甚至不再需要访问表或者索引。

possilble_keys

这一列显示了查询可以使用到的哪些索引。

key

这一列显示了mysql决定使用哪个索引来优化对该表的访问

key_len

该列显示了mysql在索引里使用的字节数

ref

这一列显示了之前的表在key列记录的索引中查找值所用的列或常量。

rows

这一列显示了mysql为了找到所需的行而需要读取的行数

extra

这一列包含了不适合在其他列显示的信息

  • using index
    表示mysql将使用索引覆盖,以避免访问表

  • using where
    表示mysql服务器将在存储引擎检索行后再进行过滤

  • using temporary
    表示mysql 在对查询结果排序时使用了临时表。

  • using filesort
    mysql将对结果使用一个外部索引排序,而不是按索引次序读取。

相关文章

  • explain 参数详解

    explain explain 只能解释select查询,并不会对存储过程、insert、update、delet...

  • explain详解

    explain详解 查询sql查询的执行计划,查看sql查询的索引策略 explain使用 explain字段 i...

  • MySQL Explain 执行计划

    参考:MYSQL explain详解需求:Qunar MySQL基础培训 Explain显示了MySQL如何使用索...

  • explain 参数

    ![$Z(IULL[1~3]O%3PP((}UB.png 没事也得看看性能分析的东西,explain小白开始。 i...

  • EXPLAIN 命令详解

    # MySQL Explain详解 __简介__ 执行计划(`query Execution plan`) __语...

  • Explain详解

    最近在看mysql 优化,可以用Explain 关键字来查看select sql 的执行计划。 mysql> ex...

  • explain详解

    最近发现一篇关于mysql explain的文章,写的非常好,mark一下:面试官:不会看 Explain执行计划...

  • mysql

    MySQL Explain详解[https://www.cnblogs.com/tufujie/p/9413852...

  • MySQL Explain详解

    MySQL Explain详解[https://www.cnblogs.com/tufujie/p/9413852...

  • mysql explain命令详解

    mysql explain命令详解 一.语法 二.explain输出解释 1.id 我的理解是SQL执行的顺利的标...

网友评论

      本文标题:explain 参数详解

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