SQL调优:MySQL “EXPLAIN”输出字段学习笔记

     EXPLAIN给出MySQL如何执行SQL语句的信息,即执行计划。在5.6版本以前,EXPLAIN只能给出SELECT查询语句的执行计划。5.6进行了扩展,DML语句的执行计划也可以通过EXPLAIN查看。

mysql> EXPLAIN SELECT * FROM `information_schema`.`TABLES`\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: TABLES
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: NULL
     filtered: NULL
        Extra: Open_full_table; Scanned all databases
1 row in set, 1 warning (0.00 sec)

     1.id

     SELECT编号。查询语句的序号。


     2.select_type

     SELECT类型。可能的取值如下。

  • SIMPLE。简单SELECT(没有关联查询和子查询)。
  • PRIMARY。最外层SELECT。
  • UNION。关联查询中的二次或二次+SELECT。
  • DEPENDENT UNION。关联查询中依赖于外层查询结果的二次或二次+SELECT。
  • UNION RESULT。关联查询的结果。
  • SUBQUERY。子查询中的首次SELECT。
  • DEPENDENT SUBQUERY。子查询中依赖于外层查询结果的首次SELECT。
  • DERIVED。衍生表SELECT(FROM子句中的子查询)。
  • MATERIALIZED。物化查询。
  • UNCACHEABLE SUBQUERY。外层查询结果的每条记录子查询都不能缓存而需要再次计算。
  • UNCACHEABLE UNION。属于UNCACHEABLE SUBQUERY的关联查询中的二次或二次+SELECT。


     3.table

     输出行所关联的表名。


     4.partitions

     查询中记录所匹配到的分区。非分区表该值为NULL。


     5.type

     关联类型。内容较多参考早期的一篇拙劣译文http://blog.csdn.net/sweeper_freedoman/article/details/52819839


     6.possible_keys

     possible_keys字段暗示MySQL可以选取哪些索引从该表中查找记录。


     7.key

     key字段指明MySQL实际上决定采用的索引。


     8.key_len

     key_len字段说明了MySQL决定采用的索引的宽度,可以以此判断MySQL实际上使用了组合索引的多少部分。


     9.ref

     ref字段输出了哪些字段或常量与key字段中列出的索引字段来比较而从表中查询记录。


     10.rows

     rows字段说明了MySQL认为执行查询需要检索的记录数。对于InnoDB表,这是一个预估值。


     11.filtered

     filtered字段是一个查询条件所能够过滤掉的表中记录的百分比预估值。


     12.Extra

     该字段包含了MySQL如何分解查询的额外信息。



参考:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值