2016-07-28 3 views
0

私の研究では、mysqldumpslowユーティリティを使用してログを解析し、結果を抽出することを考えましたが、どのようにそれを使用する。 10分の間隔で低速クエリログに記録されたクエリの数を取得して、その値を分析のために比較できるようにします。mysqlの低速クエリログに記録されたクエリの数(カウント)を10分間隔で抽出する方法

おかげ

+0

ログファイルの出力例:SELECT * FROM pets; #Time:160726 13:13:32 #User @ Host:root [root] @ localhost [] Id:1477608 #Query_time:0.001048 Lock_time:0.000807 Rows_sent:1 Rows_examined:1 SET timestamp = 1469553212; SELECT COUNT(*)from information_schema.PROCESSLIST; #Time:160726 13:18:49 #User @ Host:root [root] @ localhost [] Id:1477685 #Query_time:0.000486 Lock_time:0.000155 Rows_sent:1 Rows_examined:8 SET timestamp = 1469553529; –

答えて

1

新しいslow.log 10分ごとに作成し、それらを次々に分析するためにlogrotateを使用することができます。あなたがLinuxを使用していることを暗示する。あなたの例は、あなたのmysqlインスタンスが "log-queries-not-using-indexes"に設定されていることを示しているので、あなたのログファイルのインデックスも使わないSELECTを取得します。

更新:

私はまだあなたの問題へのより一般的なaproachがthe mysql docs次のMySQL自体にスローログをリダイレクトするなど遅いログテーブルからすべてのレコードを取得することになる、あなたが使用しているOSを知らないので:

SELECT COUNT(*) FROM slow_log; 

これは、ログに記録されたQuerysの総量を示します。これにより、10分ごとにスクリプトを実行すると、必要な情報が出力されます。

+0

私はログ情報全体を必要としません。私は、連続した10分間隔のクエリの総数が必要です。それを処理するための推奨はありますか? –

+0

ありがとう@スティーブン。それは働いた –

+0

あなたが正しいと私の答えをマークすると私は感謝します – stewe

関連する問題