加载中...
EXPLAIN 是 SQL 数据库提供的查询分析命令,展示优化器选择的执行路径、索引使用情况和预估代价,是 SQL 调优最核心的诊断工具,几乎所有主流数据库都支持。

| MySQL 关键列 | type、key、rows、Extra |
| 最优访问类型 | const(主键或唯一键等值查找) |
| PostgreSQL 增强语法 | EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) |
MySQL 的 EXPLAIN 输出每一行对应查询中的一个操作步骤,关键列包括:
MySQL 8.0 起可以用 EXPLAIN ANALYZE,它不只是估算,而是真正执行查询并返回实际执行时间和实际扫描行数,便于对比优化器估算是否准确。[1]
PostgreSQL 的 EXPLAIN (ANALYZE, BUFFERS) 输出更为详细:包含每个节点的实际启动时间和总时间,以及 Buffers: shared hit=X read=Y,其中 hit 代表命中缓冲池的页数,read 代表从磁盘读取的页数——这直接量化了 I/O 开销。
可视化工具如 explain.depesz.com 和 pgMustard 能将文本格式的执行计划渲染成树状图,颜色深浅标注成本热点,对于复杂查询(十几个 JOIN)尤其有帮助。

| MySQL 关键列 | type、key、rows、Extra |
| 最优访问类型 | const(主键或唯一键等值查找) |
| PostgreSQL 增强语法 | EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧