我有一个广泛的慢查询日志,运行了几个星期。我想解析它,它会将最高出现的查询放在顶部(执行次数和平均执行次数),然后从那里按降序排列。
我可以用什么工具/命令来实现这一目标?
答案 0 :(得分:4)
结帐Maatkit:
mk-query-digest - 解析日志等。分析,转换,过滤,审核和报告查询。
答案 1 :(得分:0)
此脚本比maakit mk-query-digest提供更明确的响应:
答案 2 :(得分:0)
这个在线分析仪对我来说真的很好用,而且是免费的!只需拖放慢速查询文件即可。
答案 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 +!'”。