コンテンツへスキップ

MySQLで1秒ごとに操作されたレコードの数を出力する

  • by

InnoDB限定になりますが、MySQLでUPDATE, SELECT, INSERT, DELETEなどにより操作されたレコード数を確認する方法です。

InnoDBについて、統計情報を出力するために”SHOW ENGINE INNODB STATUS”を実行することがありますが、その中に
起動してから更新されたレコード数が記載されています。

Number of rows inserted 58742, updated 119340, deleted 4284, read 497428

あくまで、操作された行数なので、SHOW GLOBAL STATUSの”Com_SELECT”などのSQL発行数とはまた違います。

これをbashでwhileしながらgrepするだけです・・・お粗末ですみません。

$ while true; do mysql -uroot -e “show engine innodb status\G” | grep “Num” ; sleep 1; done
Number of rows inserted 869759, updated 1739840, deleted 66802, read 7416310
Number of rows inserted 870324, updated 1741065, deleted 66852, read 7421334
Number of rows inserted 870971, updated 1742342, deleted 66899, read 7426361
Number of rows inserted 871283, updated 1742939, deleted 66922, read 7429290

CSV形式ならこんな感じ??

$ while true; do mysql -uroot -e “show engine innodb status\G” | grep “Num” | sed “s/\t\| *\|[a-z]\|[A-Z]\|://g”; sleep 1; done
884925,1770632,67991,7547067
885269,1771226,68008,7549455
885528,1771755,68028,7551635
885716,1772145,68043,7553330

ちょっとした確認に使ってます。

タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA