使用pt-query-digest按数据库、用户和日期时间过滤

4
我有一个非常大的慢查询日志(约220GB),使用pt-query-digest,如何按以下方式过滤事件/查询:
  • 数据库或多个数据库 AND
  • 日期时间范围(我只能访问时间戳) AND
  • 数据库用户
我知道这么大的慢查询需要很长时间,但这是我解决生产服务器上一些慢查询问题所拥有的全部信息。将来,我将缩小慢查询日志的大小。
我一直在使用该工具的基础功能,但其中一些过滤选项似乎不太明确或文档不完善。如果我有时间,本周我会进一步尝试,但我会感激任何进一步的提示。我已尝试使用mysqldumpslow,但它只能处理grep中的单个模式。
P.S. 这是我的第一个stackoverflow问题,请友善回答 :-)
1个回答

9

我为Percona开发了一门关于pt-query-digest的培训课程。

$ pt-query-digest --since '2013-02-24 00:00:00' --until '2013-02-24 23:59:59'
    --filter '$event->{db} && $event->{db} =~ /mydb/ && $event->{user} =~ /myuser/' 

我之所以测试 {db} 并匹配 {db} =~ /mydb/ 是因为有一些日志事件没有 {db},这会生成 "use of uninitialized value" 错误。


嗨,比尔,感谢您的回复。我已经找到了Percona页面上的pt-digest-query文档,并成功地从特定数据库中汇总了查询,但是由于时间限制,我无法得到我想要的结果。在接下来的几周里,我会再次查看慢查询日志,因为我现在正在指导某个人。 - stampkick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接