InnoDBは,さまざまなタイプのI/O要求を処理するためにバックグラウンドスレッドを使用します。構成パラメータinnodb_read_io_threads
およびinnodb_write_io_threads
を使用して,データページに対する読み取りおよび書き込みI / Oを処理するバックグラウンドスレッドの数を構成できます。これらのパラメータはそれぞれ,読み取りおよび書き込み要求に使用されるバックグラウンドスレッドの数を示します。これらは,サポートされるすべてのプラットフォームで有効です。これらのパラメータの値は,MySQLオプションファイル(my.cnf
またはmy.ini
)で設定できます。動的に変更することはできません。これらのパラメータのデフォルト値は4
であり,許可される値の範囲は1 - 64
です。
この変更の目的は,InnoDBをハイエンドのシステム上でよりスケーラブルにすることです。各バックグラウンドスレッドは,保留中のI/O要求を最大256個処理できます。バックグラウンドI/Oの主なソースは,先読み要求です。InnoDBは,バックグラウンドスレッドのほとんどが均等に作業を共有するような方法で,受信要求の負荷のバランスをとろうとします。InnoDBはまた,要求を1つに合体できる可能性を増やすために,読み取り要求を同じエクステントから同じスレッドに割り当てようとします。ハイエンドのI/Oサブシステムを使用しており,查看引擎innodb状态
で64×innodb_read_io_threads
個を超える保留中の読み取り要求が表示される場合は,innodb_read_io_threads
の値を増やすと役立つことがあります。
InnoDBのI/Oパフォーマンスの詳細は,セクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。