Mysql-Explain解析

时间:2021-05-11 10:06:19   收藏:0   阅读:24

Mysql提供了Explain关键字,用来对SELECT语句进行解析,一般用于进行慢查询分析与优化。

使用方法示例:

EXPLAIN SELECT * FROM `user_info` WHERE id < 100;

Explain输出内容如下:

mysql> explain select * from user_info where id = 2\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: user_info
   partitions: NULL
         type: const
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 8
          ref: const
         rows: 1
     filtered: 100.00
        Extra: NULL
1 row in set, 1 warning (0.00 sec)

 

 输出内容中各个字段的意义如下:

id

SELECT查询标志位,每个SELECT都会自动分配一个唯一标识符。数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表示这是一个结果集,不需要使用它来进行查询。

select_type

表示查询类型,常见有:

table

表示正在访问查询的表名。 

type

表示访问类型,是判断查询是否高效的重要依据。

主要有以下几种:

ALL < index < range ~ index_merge < ref < eq_ref < const < system

possible_keys

possible_keys 表示 MySQL 在查询时, 能够使用到的索引。

key

此字段是 MySQL 在当前查询时所真正使用到的索引。

key_len

表示查询优化器使用了索引的字节数. 这个字段可以评估组合索引是否完全被使用, 或只有最左部分字段被使用到.
key_len 的计算规则如下:

rows

MySQL 查询优化器根据统计信息, 估算 SQL 要查找到结果集需要扫描读取的数据行数。

Extra

Extra 中的很多额外的信息会在 Extra 字段显示, 常见的有以下几种内容:

 

 

参考文献

https://segmentfault.com/a/1190000008131735

原文:https://www.cnblogs.com/th2009yu/p/14749209.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!