過去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
構成に使用できる値(およびその他の情報)は、 MySQLリファレンスガイド に記載されています。したがって、たとえば、指定した2つのパラメーターを追加したい場合は、/etc/my.cnf
configは次のようになります。
[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の技術リソースにも キャッシュの理解 に関するすばらしい記事があります。