如何将mysql慢查询日志解析成有用的东西?

时间:2009-11-15 22:47:34

标签: mysql query-optimization

我有一个广泛的慢查询日志,运行了几个星期。我想解析它,它会将最高出现的查询放在顶部(执行次数和平均执行次数),然后从那里按降序排列。

我可以用什么工具/命令来实现这一目标?

5 个答案:

答案 0 :(得分:4)

结帐Maatkit

mk-query-digest - 解析日志等。分析,转换,过滤,审核和报告查询。

答案 1 :(得分:0)

此脚本比maakit mk-query-digest提供更明确的响应:

https://github.com/LeeKemp/mysql-slow-query-log-parser/

答案 2 :(得分:0)

这个在线分析仪对我来说真的很好用,而且是免费的!只需拖放慢速查询文件即可。

https://www.slowquerylog.com/analyzer

答案 3 :(得分:0)

为了更好地阅读慢速日志,我使用:

mysqldumpslow -s c -t 10 /var/log/mysql_slow_queries.log

编辑慢速日志的路径。

样本输出:

Reading mysql slow query log from /var/log/mysql_slow_queries.log
Count: 1  Time=21.52s (21s)  Lock=0.00s (0s)  Rows=3000.0 (3000), foo@localhost
  SELECT * FROM students WHERE
  (student_grade > N AND student_date < N)
  ORDER BY RAND() ASC LIMIT N

此外,仅调用mysqldumpslow而没有任何选项,则会打印一些有用的设置,例如当前的query_cache_size,慢速日志的路径等。

答案 4 :(得分:-1)

如果您可以将数据解析为单个字段,然后按查询求和并按执行次数和平均值排序,则可以使用电子表格。你知道......正常的数据分析。

如果需要,请编写基于正则表达式的应用程序以将日志拆分为CSV。当你在它的时候,你甚至可以为日志名称编写一个引导引擎,检查平均值,然后制作你想要的工具。

当然,在发布此内容后,有人可能会进来说“Duh,使用'analysisMySQLProDemon40005K +!'”。