なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

MySQLのサーバーステータス変数の監視の話

mysqlクライアントから定期実行してたし、計算は別途やってた。

SHOW [GLOBAL ]STATUSで取れるのは、「サーバー起動からの累積値」または「コマンド発行時の瞬間値」という仕様のため、前者について推移を知りたいときは、
・定間隔でコマンド発行してファイルに吐く(ex: mysql -e "SHOW GLOBAL STATUS;" >> mysql-statsus.log)
・前回との差分を計算(Excelとか使う
が必要だと思っていました。


今日の驚き

キッカケは、私も過去に参加したことがある、Oracle公式のトレーニング「初心者向け!MySQL 5.7入門」に参加されていた方のツイート。

(セミナー全体のまとめはこちらにあります )
MySQL 5.7 初心者向けセミナー ~チューニング基礎編、SQLチューニング編~ 20170814 - Togetterまとめ



えー。公式ドキュメントに、そんなの書いてあったっけー?






。。。コレか!

--relative, -r

--sleep オプションとともに使用された場合、現在値と以前の値の差異を表示します。このオプションは extended-status コマンドとのみ機能します。
(強調はこちらでつけたもの)
https://dev.mysql.com/doc/refman/5.6/ja/mysqladmin.html#option_mysqladmin_relative

って、記述はたったこれだけ。



ただ、mysqladminにすると、SHOWコマンドのときに使えたLikeによる絞り込みができなさそうなので、mysqlコマンドで定期実行するのと一長一短ぽい。



そして

http://downloads.mysql.com/presentations/20151208_02_MySQL_Tuning_for_Beginners.pdf

定期的に確認する例(15秒間隔で、ステータス変数の差分のみ表示)
shell> mysqladmin -u <ユーザー名> -p ex -i 15 -r | grep -v ‘0‘

公開資料(ダウンロード済)にも、ちゃんと書いてあった(泣)



「初心者向け」とか「入門」って書いてある本も、時々読み返そう!

やさしく学べるMySQL運用・管理入門【5.7対応】

やさしく学べるMySQL運用・管理入門【5.7対応】