按数据库和用户以及日期时间进行pt-query-digest过滤

时间:2013-02-24 22:26:10

标签: mysql performance percona

我有一个非常大的慢查询日志(~220GB),使用pt-query-digest,如何通过以下方式过滤事件/查询:

  • 数据库或数据库 AND
  • 日期时间范围(我只能访问此处的时间戳) AND
  • 数据库用户

我理解这个大小的慢查询需要很长时间,但是我必须解决一些生产服务器上的慢查询问题。将来,我将减少慢查询日志的大小。

我一直在使用该工具的基础知识,但其中一些过滤器选项似乎并不明确或有详细记录。如果我这周有时间,我会进一步玩,但我会感激任何进一步的提示。我尝试过mysqldumpslow,但它只能处理grep中的单个模式。

P.S。我的第一个stackoverflow问题...请好: - )

1 个答案:

答案 0 :(得分:5)

我为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},因此它会生成“使用未初始化的值”错误。