SHOW PROFILE 在 phpMyAdmin 中仅显示无样式的纯文本两列表格(Status/Duration),不支持排序、单位转换、高亮或图表;需通过查询 INFORMATION_SCHEMA.PROFILING 加工数据,再导出至 Excel 或在线工具生成图表。

SHOW PROFILE 本身不输出图表,也不支持美化 —— 它只返回纯文本表格,且 MySQL 原生不提供任何可视化能力。你在 phpMyAdmin 里执行 SHOW PROFILE FOR QUERY N,看到的永远是两列:Status 和 Duration,没有任何样式、颜色或交互。
所以,别指望 phpMyAdmin 自带“美化图表”功能。想直观对比阶段耗时?得绕开它。
phpMyAdmin 中 SHOW PROFILE 的输出本质是纯文本表
phpMyAdmin 只是对 MySQL 返回的结果做基础 HTML 渲染,不解析字段语义,也不重排数据。这意味着:
-
SHOW PROFILE结果里的Status字段(如Sending data、Creating tmp table)不会被分类或高亮 - 没有自动排序(比如按
Duration降序),也不能点击列头排序 - 数值精度固定(通常显示 8 位小数),无法缩写为 ms/μs 或加千分位
- 结果不可导出为图表格式(CSV 里只有两列,没坐标轴信息)
替代方案:用 SQL 查询 INFORMATION_SCHEMA.PROFILING 表
MySQL 5.1+ 提供了可查询的系统表 INFORMATION_SCHEMA.PROFILING,它和 SHOW PROFILE 数据来源一致,但能用 SQL 加工:
- 支持
ORDER BY Duration DESC快速定位耗时大户 - 可用
ROUND(Duration*1000, 2)转成毫秒,提升可读性 - 能
WHERE Status NOT IN ('starting', 'end', 'query end')过滤噪音阶段 - 可
SELECT Status, ROUND(Duration*1000,2) AS ms FROM INFORMATION_SCHEMA.PROFILING WHERE QUERY_ID = N ORDER BY Duration DESC
这个结果在 phpMyAdmin 里虽仍是表格,但至少能一眼看出哪一步最拖后腿。
真要图表?得导出 + 外部工具处理
phpMyAdmin 不具备前端绘图能力。可行路径只有:
立即学习“PHP免费学习笔记(深入)”;
- 把
INFORMATION_SCHEMA.PROFILING查询结果导出为 CSV(phpMyAdmin → “导出” → CSV) - 用 Excel / LibreOffice Calc 做条形图:横轴
Status,纵轴ms - 或粘贴到 QuickChart、Chart.js 在线编辑器生成 PNG/SVG
- 注意:导出前务必确认
QUERY_ID对应的是你要分析的那条查询,因为该表会混存多个会话的记录(如果 profiling 没关)
容易被忽略的关键限制
profiling 是会话级、内存态、无持久化的机制:
- 连接断开后所有
SHOW PROFILES记录即消失,无法事后回溯 -
INFORMATION_SCHEMA.PROFILING同样只存当前连接的数据,跨会话查不到 - MySQL 5.6.7+ 已废弃该功能,官方推荐迁移到
performance_schema(但它的开启成本和查询复杂度高得多) - phpMyAdmin 界面里没有任何按钮能“一键转图表”,所有所谓“美化”都得靠你手动加工数据



















