ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> 其他数据库 >> EXPLAIN结果列说明

EXPLAIN结果列说明(1/5)

来源:网络整理     时间:2018-06-28     关键词:

本篇文章主要介绍了" EXPLAIN结果列说明",主要涉及到方面的内容,对于其他数据库感兴趣的同学可以参考一下: EXPLAIN 命令主要用于分析MySQL 的SQL 语句效率,EXPLAIN 命令在MySql 5.6版本之后不仅仅只支持SELECT 条件分...

        EXPLAIN 命令主要用于分析MySQL 的SQL 语句效率,EXPLAIN 命令在MySql 5.6版本之后不仅仅只支持SELECT 条件分析,还增加了DELETE、INSERT、REPLACE、UPDATE的支持,以下就是EXPLAIN 命令的语法:

{EXPLAIN | DESCRIBE | DESC}
    tbl_name [col_name | wild]

{EXPLAIN | DESCRIBE | DESC}
    [explain_type]
    explainable_stmt

explain_type: {
    EXTENDED
  | PARTITIONS
  | FORMAT = format_name
}

format_name: {
    TRADITIONAL
  | JSON
}

explainable_stmt: {
    SELECT statement
  | DELETE statement
  | INSERT statement
  | REPLACE statement
  | UPDATE statement
}

        一般情况下我们会使用EXPLAIN 去分析发生过的慢查询语句,诸如:

mysql> explain select * from table_a\G
********** 1. row **********
           id: 1
  select_type: SIMPLE
        table: table_a
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 2
     filtered: 100.00
        Extra: NULL

        这些结果类型分别代表了不同的意义,每一个类型均有不同的属性值,不同属性的值代表了不同的效率与性能,本文就针对这些属性进行分析与学习。

1.id

        识别符,每行结果都会有一个id

2.select_type

        select 类型,值为以下其中一种:

        SIMPLE:进行不需要union 操作或不含子查询的简单select 查询时,响应查询语句的select_type 为SIMPLE(查询中包含连接的情形也一样)。无论查询语句是多么复杂,执行计划中select_type为SIMPLE的单位查询一定只有一个,即最外侧的select查询的select_type通常为SIMPLE。上面那个示例的select_type 就是SIMPLE 类型的。

        PRIMARY:一个需要union 操作或含子查询的select 查询执行计划中,位于最外层的select_type 即为PRIMARY。与SIMPLE 一样,select_type 为PRIMARY 的单位select 查询也只存在1个,位于查询最外侧的select 单位查询的select_type 为PRIMARY

        UNION:UNION 中的第二个或后面的SELECT 语句,由union 操作联合而成的单位select 查询中,除第一个外,第二个以后的所有单位select 查询的select_type 都为UNION。union 的第一个单位select 的select_type 不是UNION,而是DERIVED。它是一个临时表,用于存储联合(Union)后的查询结果。

相关图片

相关文章