Elysia Tools

在一个清晰的工作台里浏览工具、案例、可视化和主题指南。

热门分类

专题

语言
ZHESPTRUFRDEEN

Elysia Tools

导航

Development

SQL 执行计划可视化器

· 最后更新:2026-06-18

粘贴 EXPLAIN / EXPLAIN ANALYZE 输出(PostgreSQL/MySQL/SQLite),渲染为成本树,标注估算行数与实际行数的偏差热点,并给出具体的索引建议

详情

这个工具可以帮你完成什么

本工具解析真实的 EXPLAIN 输出(而非静态 SQL 文本),将执行计划渲染为带缩进的树形视图,按严重程度着色。

支持的输入(自动识别或手动选择):

  • PostgreSQL:EXPLAIN (FORMAT JSON, ANALYZE) 的 JSON,或默认的缩进 TEXT 输出。
  • MySQL:EXPLAIN FORMAT=JSON 输出,或经典表格 EXPLAIN(id|select_type|table|type|key|rows|Extra)。
  • SQLite:EXPLAIN QUERY PLAN 文本(SCAN/SEARCH … USING INDEX …)。

每个节点显示:节点类型、表、所用索引、估算成本/时间、估算行数;使用 EXPLAIN ANALYZE 时还显示实际行数与耗时。估算行数与实际行数偏差达到 10 倍及以上会被标为统计热点。

诊断覆盖:大表上的顺序/全表扫描、统计偏差(ANALYZE 过期)、filesort、临时表、昂贵的嵌套循环、不可索引的谓词(索引列被函数包裹)、SELECT *、无 LIMIT 的 ORDER BY —— 每项都给出具体的索引或改写建议(如“在 users(email) 上加索引”)。

提示:为获得最丰富的输出,请在 PostgreSQL 上运行 EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON),或在 MySQL 上运行 EXPLAIN ANALYZE,以便工具比较估算与实际。

执行

运行这个工具

填写表单、运行工具,并在同一页面查看结果。

案例

与这个工具匹配的案例

相关内容

继续查看相关工具与专题

由 Elysia Tools 团队编写
文本311
JSON107
SQL43
Query23
Cost14

工具使用指南

详细了解工具的适用范围、支持能力及用户案例。

关键事实

分类
Development
输入类型
textarea, select, number
输出类型
html
案例覆盖
4
API 可用
是

概览

SQL 执行计划可视化器是一款专为数据库开发和运维人员设计的在线工具。它能够解析 PostgreSQL、MySQL 和 SQLite 的 EXPLAIN 或 EXPLAIN ANALYZE 输出,将其转化为直观的树状成本图,自动标注估算与实际行数的偏差热点,并针对全表扫描、临时表和慢查询提供具体的索引与 SQL 改写建议。

适用场景

  • 数据库查询变慢,需要分析 SQL 实际执行路径以找出性能瓶颈时。
  • 怀疑数据库统计信息过期,需要对比 EXPLAIN ANALYZE 中估算行数与实际行数的偏差时。
  • 面对复杂的嵌套循环或多表关联,难以通过原始文本直观理清执行计划的层级关系时。

使用方式

  1. 1将 PostgreSQL (JSON/TEXT)、MySQL (JSON/表格) 或 SQLite 的 EXPLAIN 输出粘贴至输入框,并可选填原始 SQL 查询。
  2. 2选择对应的数据库方言(或使用自动识别),并根据需要调整树的最大深度上限。
  3. 3工具解析文本并生成带缩进和颜色标注的执行计划树,高亮显示高能耗节点与行数估算偏差超过 10 倍的统计热点,同时输出具体的索引优化建议。

常见用途

  • 诊断大表上的全表扫描(Seq Scan / Full Table Scan)并获取缺失索引的创建建议。
  • 识别因索引列被函数包裹(非 Sargable 谓词)而导致索引失效的查询节点。
  • 分析复杂查询中的 Filesort 和临时表(Temporary Table)开销,优化排序与分组性能。

示例

1. 诊断 PostgreSQL 统计信息过期导致的慢查询

后端开发工程师

背景

线上用户表 users 查询变慢,开发人员获取了 EXPLAIN (ANALYZE, FORMAT JSON) 的输出,发现查询没有走索引。

问题

难以直观判断是索引缺失还是优化器估算失误导致了全表扫描。

如何使用

将 PostgreSQL 的 EXPLAIN JSON 粘贴至输入框,选择方言为 PostgreSQL,点击生成可视化树。

{
  "dialect": "postgresql",
  "maxDepth": 20
}

结果

可视化树将 Seq Scan 节点标红,并高亮显示估算行数(1000行)与实际行数(95000行)存在近百倍偏差,提示运行 ANALYZE users 更新统计信息,并建议在 email 列上创建索引。

2. 优化 MySQL 隐式类型转换导致的索引失效

数据库管理员 (DBA)

背景

业务系统升级后,一条根据订单号查询的 SQL 出现严重堆积,MySQL 的 EXPLAIN 显示为全表扫描。

问题

需要快速确认为什么已有的 idx_order_no 索引未被使用。

如何使用

粘贴 MySQL 的 EXPLAIN FORMAT=JSON 输出,输入对应的 SQL 查询,运行可视化分析。

{
  "dialect": "mysql",
  "sql": "SELECT * FROM orders WHERE order_no = 123456"
}

结果

工具检测到 order_no 为字符类型,而查询使用了数字,诊断出非 Sargable 谓词(隐式类型转换),并给出“修改查询参数类型或改写 SQL”的优化建议。

常见问题

支持哪些数据库的 EXPLAIN 格式?

支持 PostgreSQL(JSON 或 TEXT)、MySQL(JSON 或经典表格)以及 SQLite(EXPLAIN QUERY PLAN 文本)。

什么是“统计热点”?

当 EXPLAIN ANALYZE 中的实际执行行数与优化器估算行数偏差达到 10 倍及以上时,工具会将其标记为统计热点,通常意味着需要运行 ANALYZE 更新统计信息。

为什么建议使用 JSON 格式的 EXPLAIN 输出?

JSON 格式包含最完整的节点属性和度量数据,能让可视化器生成最精确的成本树和诊断建议。

工具会收集或存储我的 SQL 和执行计划数据吗?

不会,所有解析和可视化过程均在浏览器本地完成,不会向服务器上传您的敏感数据。

为什么我的执行计划没有显示实际行数?

只有使用 EXPLAIN ANALYZE(或 PostgreSQL 的 EXPLAIN (ANALYZE))获取的输出才包含实际运行数据,普通的 EXPLAIN 仅包含估算数据。

专题

SQL 查询性能与完整性审查

围绕查询构建、JOIN、格式化、性能计划、注入风险、外键完整性和 schema 差异,形成可审批的 SQL 审查证据。

首页
工具3201
案例593
可视化465
文件查看器103
专题233
标签333
图像、音频与视频657

图像、音频、视频处理、转换与优化工具

数学、日期与金融644

计算器、数值计算、日期逻辑、统计与金融工具

设计与颜色297

颜色、版式、图形、视觉样式与设计辅助工具

文本与写作209

写作、清洗、格式化、提取与文本分析工具

开发与 Web193

开发者工具、网络处理、Web 调试与自动化辅助工具

转换与编码175

格式、文件、压缩包、单位与编码转换工具

FLAC/WAV 无损音源疑点筛查与证据交付
自托管抽奖组件配置复核、嵌入测试与上线交付
Stripe 优惠码候选批次审核与本地导入预检
批量照片技术初筛、近重复复核与修图候选交付
界面截图结构化、人工校对与开发交付

© 2026 Elysia Tools. 保留所有权利。

文档价格关于我们服务条款隐私政策Cookie 政策联系我们
数据格式

SQL 脚本示例

各种场景和用例的 SQL 查询示例和数据库脚本

安全

SQL注入示例

用于安全测试、漏洞评估和防御编码实践的SQL注入载荷教育集合

开发

SQL 查看器样本

用于浏览器内 SQL 查看器的样本文件

数据库

PostgreSQL 高级示例

高级 PostgreSQL 数据库示例,包括优化策略、复杂查询、索引和性能调优

Development

游戏存档查看器

拖入任意游戏存档——Minecraft NBT、虚幻引擎 GVAS、幻兽帕鲁容器、JSON/XML/INI/Lua 文本存档、SQLite 档案——识别格式、引擎版本、关键进度字段并给出有界的结构树。

Data Processing

CSV 转数据库迁移规划器

根据 CSV 数据推断关系型 schema,并为 PostgreSQL、MySQL、SQLite 或 SQL Server 生成建表和 ALTER 迁移计划

Data Processing

结构化日志解析器

自动识别常见日志格式,提取核心字段并推断字段类型,支持导出为 JSON、CSV 或 SQL。

Development

package.json 依赖审计器

审计 package.json 的依赖卫生、版本范围质量,并可选地从 package-lock.json 或 yarn.lock 深入检查传递依赖树。会标记重复依赖、通配符或预发布版本、未排序键、缺失元数据,以及运行时/开发时依赖误分类问题。