回答:
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バージョンでは削除されたようです。