web-dev-qa-db-ja.com

my.cnfファイルでquery_cache_sizeとjoin_buffer_sizeを設定するにはどうすればよいですか?

過去2日間サーバーを監視していて、一時テーブルの60%がメモリではなくhhdに保存されていることに気付きました。また、query_cache_sizeを設定するようにアドバイスするMySQL Performance TuningPrimerスクリプトを実行しました。

これを行うには、my.cnfでquery_cache_sizeとjoin_buffer_sizeを設定する必要があると思います。

残念ながら、my.cnfファイルの編集経験がないので、誰かがここで親切に助けてくれることを願っています。 How設定しますか?what設定しますか?

my.cnfは現在:

[mysqld]
set-variable = max_connections=500
safe-show-database
log_slow_queries = /var/log/mysql/log-slow-queries.log
slow_query_log = 1
long_query_time = 2
log-queries-not-using-indexes
2
LittleSnitch

構成に使用できる値(およびその他の情報)は、 MySQLリファレンスガイド に記載されています。したがって、たとえば、指定した2つのパラメーターを追加したい場合は、/etc/my.cnfconfigは次のようになります。

[mysqld]
set-variable = max_connections=500
safe-show-database
log_slow_queries = /var/log/mysql/log-slow-queries.log
slow_query_log = 1
long_query_time = 2
log-queries-not-using-indexes

# (default: 0)
thread_cache_size = 4
# Replaces table_cache in 5.1.3 (default: 64)
table_open_cache = 128
# (default: 0), disables cache
query_cache_size = 8388608

私が使用した2つの値は、MySQLが指定されていない場合に使用するデフォルトです。ここで独自の値を指定してください!

更新:MySQLの技術リソースにも キャッシュの理解 に関するすばらしい記事があります。

1
Andrew M.