--innodb-buffer-pool-size
提供:MySQL Practice Wiki
| ファイル | my.cnf, my.ini |
| セクション | [mysqld] |
| データ型 | 整数 (K、M、Gにより修飾可能) |
| デフォルト値 | N/A |
| 値の範囲 | マニュアルを参照 |
| 効果 | 記事を参照 |
| 効果の有効範囲 | mysqld |
| 使用頻度 | 高 |
説明
InnoDBがデータとインデックスのために使用するバッファ(InnoDBバッファプール)のサイズを決めるオプション。InnoDBを使用する際、恐らく最もパフォーマンスに影響するオプションであろう。大きければ大きいほどパフォーマンスは良くなるが、大きくしすぎてはいけない。MySQLは他の処理、例えばソートなどにも多くのメモリを必要とするからだ。また、MySQL以外のプロセスやOSのカーネルのためにもメモリを残しておく必要があるので、最大でシステムで利用できるメモリの70%程度に設定するのが良いとされている。
MyISAMを同時に使用する場合には、MyISAMはMyISAMで別のバッファ、例えばキーバッファを使用するため、その分InnoDBバッファプールを小さくする必要がある。
InnoDBバッファプールに関する詳細
InnoDBバッファプールは、InnoDBが利用するメモリバッファである。以下の情報を蓄える。
- データキャッシュ
- インデックスキャッシュ
- アダプティブハッシュインデックス
バッファプールを大きくとればとるほどディスクに対するI/Oが減るのでパフォーマンスが向上する。ただしInnoDBのバッファプールをきっちりと大きく使う場合、UNIX系のOSにおいてはファイルシステムのキャッシュを使わないようにする必要がある。両方で同じデータをキャッシュするダブルキャッシュの問題を解消するためである。(InnoDBは元々Windows上でファイルシステムのキャッシュを使わない。)--innodb-flush-methodオプションを調整しよう。