回答:
table_cache
変更するのに最も便利な設定ディレクティブです。MySQLはテーブルにアクセスするたびに、テーブルをキャッシュにロードします。多数のテーブルがある場合は、それらをキャッシュする方が高速です。
以下を実行して、サーバー変数を確認します。
show status;
そして、変数を見てくださいopen_tables
。これがあなたのtable_cache
値と同じでopened_tables
あり、上昇し続けるtable_cache
場合は、構成ファイルの値を増やす必要があります。ピーク時にこれらの変数を試してバランスを見つけます。ピーク時opened_tables
に、サーバーが長時間稼働していても少量になるように構成する必要があります。
key_buffer_size
また、実験するのに適した変数です。この変数はインデックスバッファサイズに影響し、この変数を大きくすると、MySQLのインデックス処理速度が向上します。show variables;
コマンドで変数をもう一度調べて、と比較key_read_requests
できkey_reads
ます。理想的には、これら2つの変数の比率をできるだけ低くしたい場合、のサイズを大きくすることでこれを行うことができますkey_buffer_size
。この変数を高く設定すると、ディスクへの直接の書き込みと読み取りが少なくなります。これが主な関心事でした。
my.cnf
ファイルの値を変更してMySQLを再起動する必要がありますが、MySQLの実行中にそれらの多くを変更することもできます( 'SET GLOBAL VARIABLE = value ')。
あなたはおそらく増加を見たいだろうkey_buffer_size
、sort_buffer
、read_buffer
とtable_cache
スターターのため、おそらくinnodb_buffer_pool_size
あなたはどんなInnoDBテーブルを持っている場合は、。これらの値の一部は、特にハードウェアがあれば、大幅に(2桁も)増やすことができます。MySQLのデフォルトは非常に保守的であり、約10年前の一般的な混用デスクトップを対象にしているようです。ああ、32ビット版では2GB以上のRAMの使用に問題があることに注意してください。
詳細とガイダンスについては、MySQLマニュアルをご覧ください。
show status;
状態変数を参照するなどOpen_tables
してをOpened_tables
。table_cache
最近のMySQLバージョンでは削除されたようです。