首页 >> 基础教程

explain用法详解

EXPLAIN 是 MySQL 中用于分析 SQL 查询性能的重要工具,它可以帮助你理解 MySQL 如何执行你的查询,从而优化查询性能。

基本用法

EXPLAIN SELECT * FROM table_name WHERE condition;

EXPLAIN UPDATE table_name SET column=value WHERE condition;

EXPLAIN DELETE FROM table_name WHERE condition;


EXPLAIN 输出列解释

EXPLAIN 的输出包含以下重要列:

  1. id: 查询标识符,表示查询中 SELECT 的顺序

  2. select_type: 查询类型

    • SIMPLE: 简单 SELECT(不使用 UNION 或子查询)

    • PRIMARY: 最外层的 SELECT

    • SUBQUERY: 子查询中的第一个 SELECT

    • DERIVED: 派生表的 SELECT

    • UNION: UNION 中的第二个或后面的 SELECT

  3. table: 访问的表名

  4. partitions: 匹配的分区

  5. type: 连接类型(性能从好到坏排序)

    • system: 表只有一行

    • const: 通过主键或唯一索引查找

    • eq_ref: 使用唯一索引关联

    • ref: 使用非唯一索引查找

    • range: 索引范围扫描

    • index: 全索引扫描

    • ALL: 全表扫描

  6. possible_keys: 可能使用的索引

  7. key: 实际使用的索引

  8. key_len: 使用的索引长度

  9. ref: 列与索引的比较

  10. rows: 估计要检查的行数

  11. filtered: 表条件过滤的行百分比

  12. Extra: 额外信息

  • Using index: 使用覆盖索引

  • Using where: 使用 WHERE 条件

  • Using temporary: 使用临时表

  • Using filesort: 需要额外排序

结果中有多条数据中代表按顺序执行


所有评论

最新文章
20.5 性能优化建议2026-05-08
20.4 复杂查询实现2026-05-08
20.3 表创建与数据初始化2026-05-08
20.2 数据库设计2026-05-08
20.1 项目需求分析:博客系统2026-05-08
19.4 自动化备份策略2026-05-08
19.3 导出和导入数据2026-05-08
19.2 恢复备份数据2026-05-05
19.1 使用mysqldump备份数据2026-05-05
18.4 实战:开发简单的学生管理系统2026-05-05
关于我 备案号:蜀ICP备2023042032号-1