Skip to content

MySQL 慢查询日志分析工具 ​

把 MySQL / MariaDB 的慢查询日志(slow.log)拖进下方区域,即可在浏览器中解析出明细表格、SQL 指纹汇总与时间分布热力图,并一键导出 Excel / CSV。与 pt-query-digest 的定位互补:pt-query-digest 在服务器命令行出报告,本工具适合在个人电脑上交互式浏览、筛选和留档。

拖拽慢查询日志到此处,或 点击选择文件

支持 .log / .txt 等文本格式 · MySQL 与 MariaDB 慢日志均可解析

🔒 全程在浏览器本地解析,日志数据不会上传到任何服务器

使用步骤 ​

  1. 获取慢查询日志:在服务器上找到 slow_query_log_file 指定的日志文件(如 /var/log/mysql/slow.log),下载到本地。尚未开启慢查询日志的,参见下文开启方法。
  2. 上传解析:将日志拖入上方上传区(或点击选择文件),解析全程在你的浏览器内完成,数据不会上传到任何服务器。
  3. 浏览筛选:支持按关键字、数据库、最短耗时、时间范围筛选;明细表可按任意数值列排序,点击行查看 SQL 详情与优化建议。
  4. 导出留档:点击「导出 Excel」或「导出 CSV」,只导出当前筛选后的记录,方便汇报与归档。

功能说明 ​

  • 明细日志:每条慢查询一行,包含执行时间、查询耗时、锁定耗时、返回行数、扫描行数、扫描/返回比、数据库与完整 SQL。扫描/返回比过大通常意味着索引不合适。
  • SQL 指纹汇总:把参数不同的同类 SQL 归并为一组(数字与字符串常量替换为 ?),按总耗时排序,快速定位「最值得优化」的查询,作用类似 pt-query-digest 的聚合报告。
  • 时间分布:7×24 热力图展示慢查询集中在哪些时段,帮助判断是否与定时任务、业务高峰相关。
  • 导出 Excel:生成两个工作表——「详细查询日志」与「SQL指纹汇总」,表头加粗并冻结首行;「导出 CSV」为明细表,带 BOM,Excel 双击打开不乱码。

慢查询日志格式 ​

工具按以下字段解析(MySQL 5.x / 8.x 及 MariaDB 均支持):

text
# Time: 2024-03-18T10:00:00.000000Z     ← 执行时间(服务器本地时间)
# User@Host: shop_user[shop_user] @ localhost []   ← 执行用户与来源
# Query_time: 5.234567  Lock_time: 0.000123  Rows_sent: 100  Rows_examined: 10000
# Schema: shop_db                       ← 数据库(MariaDB 位于 Thread_id 行)
SET timestamp=1710763200;
SELECT * FROM orders WHERE ...;         ← SQL 正文(支持多行)

以下情况也能正确处理:连续记录省略重复的 # Time: 行、# administrator command: 类记录自动跳过、CRLF 换行、UTF-8 / GBK 编码。

开启慢查询日志 ​

命令行(重启失效):

sql
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
SET GLOBAL long_query_time = 1;
SET GLOBAL log_queries_not_using_indexes = 'ON';

配置文件 my.cnf(永久生效):

ini
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1

常见问题 ​

文件很大(几十 MB 以上)会卡吗? 超过 2 MB 的文件会自动改用 Web Worker 在后台线程解析,页面不卡顿;但浏览器内存有限,建议单文件不超过 200 MB,更大的日志可先按时间切分。

时间显示的时区口径是什么? 慢日志中的 # Time: 本身是服务器本地时间,工具原样展示(不做时区换算)。若浏览器与服务器时区不同,请以服务器时区理解图表中的时段。

数据安全吗? 安全。解析、统计、导出全部在浏览器本地完成,日志内容不会离开你的电脑,可直接用于生产日志分析。

与 pt-query-digest 的区别? pt-query-digest 输出的是命令行报告,聚合维度更多(如 95% 响应时间、执行计划抽样);本工具胜在零门槛、可视化交互与 Excel/CSV 留档,适合日常巡检与团队汇报。两者可配合使用。

Percona Toolkit 中文文档 · 社区维护的第三方学习站