3

pt-query-digest を使用して、非常に大きな低速クエリ ログ (~220GB) を持っています。次の方法でイベント/クエリをフィルタリングするにはどうすればよいですか?

  • データベースまたはデータベース AND
  • 日時範囲 (ここではタイムスタンプにしかアクセスできません) AND
  • データベース ユーザー

このサイズの遅いクエリには長い時間がかかることは理解していますが、運用サーバーで発生している遅いクエリの問題を解決するために必要な情報はこれだけです。将来的には、スロー クエリ ログのサイズを縮小する予定です。

私はツールの基本を使用してきましたが、これらのフィルター オプションのいくつかは明確に説明されていなかったり、十分に文書化されていないように思われます。今週時間があれば、さらに遊んでみますが、さらにヒントをいただければ幸いです。mysqldumpslow を試してみましたが、grep で単一のパターンしか処理できません。

PS私の最初のスタックオーバーフローの質問...親切にしてください:-)

4

1 に答える 1

8

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}がないため、「初期化されていない値の使用」エラーが生成されるためです。

于 2013-03-04T05:01:30.277 に答える