WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

MySQLチューニングメモ

   

innodb_buffer_pool_size

InnoDBを使う場合はまずinnodb_buffer_pool_sizeを設定してゆとりあるメモリバッファを設ける。

※設定はMB単位でMBをサフィックスとして付けなければならない

innodb_buffer_pool_size : InnoDBを使っている場合、どんな環境でも一番最初に設定しなければならない値。バッファプールとは、データとインデックスがキャッシュされる領域だ。これをできる限り大きくしておくことで、読み出しの処理をディスクからではなくメモリから行うことができるようになる。一般的な値は、5-6GB(8GB RAMの場合)、20-25GB(32GB RAM)、100-120GB(128GB RAM)。

MySQLをインストールしたら、必ず確認すべき10の設定 | Yakst

目安は実メモリの8割程。

innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。

漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

innodb_log_file_sizeも一緒に設定

大きくした方がパフォーマンスが向上します。

なぜなら、innodb_log_fileがいっぱいになると、メモリ上のinnodb_buffer_poolの中の更新された部分のデータを、ディスク上のInnoDBのデータファイルに書き出すしくみになっているからです。

ですので、innodb_buffer_pool_sizeを大きくしたら、innodb_log_file_sizeもあわせて調整しないとパフォーマンスが向上しません。

DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

GRANT文はIPアドレスで

skip_name_resolveが使えて早くなる

skip_name_resolve : クライアントが接続してきたら、サーバはホスト名の名前解決をしようとする。その時DNS応答が遅いと、コネクションの生成も遅くなってしまう。このため、skip-name-resolveを設定してDNS名前解決を無効にしてサーバを起動するのをおすすめする。これによる唯一の制限が、GRANT文でIPアドレスしか使えなくなることだ。既存のシステムにこの設定を追加する時はその点に注意しよう。

DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

 - MySQL ,