LoginSignup
59
51

More than 5 years have passed since last update.

コマンド一つでMysqlを速くする

Last updated at Posted at 2014-06-06

稼働中のシステムであっても下記のコマンドを実行するだけで再起動等必要はないので、非常にお手軽に出来る。

mysql
mysql > set global innodb_flush_log_at_trx_commit = 2;

デフォルトではinnodb_flush_log_at_trx_commit = 1 になっているはず。
1に設定するとトランザクション単位でログを出力するが 2 を指定すると1秒間に1回ログファイルに出力するようになる。
そのため、マスターDBが落ちて別スレーブに切り替わる仕組みを導入していても1秒の間に発生したトランザクションは完全にもとに戻す事が出来ない。

マスターDBの死 = サービス停止 みたいに冗長構成を持たせていないのならばこの設定にしても問題はなさそう。

mysqlslapでベンチマークを測ってみた。
テストの内容としては20クライアントから計10万回のINSERT文を実行するという内容で
結果として約3倍近く速くなっている。
innodb_flush_log_at_trx_commit = 1
スクリーンショット 2014-06-07 21.45.13.png

innodb_flush_log_at_trx_commit = 2
スクリーンショット 2014-06-07 21.45.41.png

59
51
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
51