首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 中 EXPLAIN 各字段的含义说明

MySQL 中 EXPLAIN 各字段的含义说明

原创
作者头像
用户11958489
发布2025-12-19 14:40:53
发布2025-12-19 14:40:53
5830
举报

在 MySQL 中,可以通过 EXPLAIN 查看一条 SQL 语句的执行计划,从而了解查询在执行时的访问方式和索引使用情况。下面对 EXPLAIN 输出中常见字段的含义进行说明。


一、EXPLAIN 的基本用法

代码语言:javascript
复制
EXPLAIN
SELECT *
FROM user
WHERE id = 1;

执行后会返回一行或多行结果,每一列都对应执行计划中的一个字段。


二、id

id 表示查询中每个 SELECT 子句的标识符:

  • id 值越大,越先执行
  • 相同 id 的查询按从上到下的顺序执行

在简单查询中,id 通常为 1


三、select_type

select_type 表示查询的类型,常见取值包括:

  • SIMPLE:简单查询,不包含子查询或 UNION
  • PRIMARY:最外层的查询
  • SUBQUERY:子查询中的第一个 SELECT
  • DERIVED:派生表(FROM 子句中的子查询)
  • UNION:UNION 中的第二个及后续查询

该字段用于区分复杂查询中各个 SELECT 的角色。


四、table

table 表示当前行所访问的表名,可能是:

  • 实际表名
  • 派生表的临时名称
  • NULL(如不访问任何表的情况)

五、type

type 表示表的访问方式,是判断查询性能的重要字段之一。 常见类型按性能从好到差大致如下:

  • const:通过主键或唯一索引一次命中
  • eq_ref:使用唯一索引进行等值匹配
  • ref:使用非唯一索引
  • range:索引范围扫描
  • index:全索引扫描
  • ALL:全表扫描

一般情况下,应尽量避免 ALL


六、possible_keys

possible_keys 表示 MySQL 在理论上可能使用的索引:

  • NULL 表示没有可用索引
  • 不一定最终会被使用

该字段用于判断索引设计是否合理。


七、key

key 表示实际被 MySQL 使用的索引:

  • NULL 表示未使用索引
  • 为索引名表示索引已生效

如果 possible_keys 有值但 keyNULL,通常需要检查查询条件。


八、key_len

key_len 表示 MySQL 使用的索引长度(单位为字节):

  • 可用于判断联合索引中使用了哪些列
  • 长度越短,通常表示使用的索引列越少

该字段与索引列的数据类型和长度有关。


九、ref

ref 表示索引列与哪一列或常量进行比较:

  • 常见值包括 const、字段名
  • 用于说明索引匹配的来源

十、rows

rows 表示 MySQL 预估需要扫描的行数:

  • 数值越小,通常性能越好
  • 属于估算值,不是实际扫描行数

可用于对比不同 SQL 或索引方案的效率。


十一、Extra

Extra 提供额外的执行信息,常见取值包括:

  • Using where:使用了 WHERE 过滤
  • Using index:使用覆盖索引
  • Using temporary:使用临时表
  • Using filesort:使用文件排序

其中 Using temporaryUsing filesort 通常意味着额外的性能开销。


小结

通过 EXPLAIN 可以了解:

  • 查询的执行顺序
  • 表的访问方式
  • 索引是否被使用
  • 可能存在的性能风险点

在分析 SQL 执行情况时,应结合多个字段综合判断,而不是只关注单一指标。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 在 MySQL 中,可以通过 EXPLAIN 查看一条 SQL 语句的执行计划,从而了解查询在执行时的访问方式和索引使用情况。下面对 EXPLAIN 输出中常见字段的含义进行说明。
    • 一、EXPLAIN 的基本用法
    • 二、id
    • 三、select_type
    • 四、table
    • 五、type
    • 六、possible_keys
    • 七、key
    • 八、key_len
    • 九、ref
    • 十、rows
    • 十一、Extra
    • 小结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档