2016-09-12 14 views
0

MySQLのパフォーマンスに関するいくつかの問題を調査していて、データベースの各テーブルに挿入または更新された回数をレポートしたい時間の。MySQL - テーブルへの挿入/更新の数をカウントする方法

RDSのディスクI/Oメトリックなどの一般的なサーバーパフォーマンスに関する多くのデータがあります。 MySQLのSHOW STATUSコマンドはQueries、さらにはInnodb_data_writesと表示されますが、これらはすべてサーバーレベルであり、細かくはありません。私は詳細をテーブルレベルまで取得したいと思います。

information_schemaまたはperformance_schemaのデータベースには、私がオンにしたり使用したりできるものがありますか?

+1

の表を参照してください。 –

+0

決してこれをしなければならなかったが、これは役に立つかもしれない: http://ronaldbradford.com/blog/mysql-dml-stats-per-table-2009-09-09/ – barat

+0

@johnelemans問題は最後のタイムスタンプ以降に更新されたアイテムを数える間に複数回更新されます。それはあなたにアイデアを与えますが、それでも私が望むほど正確ではありません。 – Brandon

答えて

1

パフォーマンススキーマは、表(偶数インデックス)の粒度に関する表ioの統計を保持します。

あなたはあなたがそれらを持っていない場合は、単に日付を検索し、各テーブルに更新タイムスタンプを追加することができますperformance_schema.table_io_waits_summary_by_table

https://dev.mysql.com/doc/refman/5.7/en/table-waits-summary-tables.html#table-io-waits-summary-by-table-table

+0

パーフェクト、まさに私が望んでいたものです。 – Brandon

+0

@Brandon素晴らしい。答えを受け入れてください。 –

1

this linkを指摘してくれたBaratのおかげで、関連情報のバイナリログを参照することができます。コードはGitHubの上で共有

Parsed 1,096,063 lines spanning 300 seconds between 2016-09-13 03:05:00 and 2016-09-13 03:10:00 
master       metrics      update   = 43570 
master       metrics      insert into  = 9 
DEFAULT      accounts      update   = 501 
DEFAULT      users       update   = 5 
DEFAULT      logins       insert into  = 1 
mysql       rds_heartbeat2     insert into  = 1 

:私は、フォーマットに必要な情報を出力するものにログの内容のリモートサーバと正規表現の構文解析からバイナリログを取得するためにmysqlbinlogの組み合わせを使用しています迅速なスクリプトをコード化at https://github.com/sellerlabs/mysql-writes-per-table

関連する問題