my-*.cnf

MySQL の設定ファイルは DB サーバーの規模に合わせて /usr/share/mysql に用意されている。
これまで自宅サーバーではメモリもあんまりないから my-large.cnf を使ってきたんだけど、これには query_cache_size が設定されていないことがわかった。CPU を食うわけだ。
small はメモリが 64MB 以下, medium は128MB 以下, large は 512MB 以下, huge は 1GB ~ 2GB 以下, innodb-heavy は 4GB と InnoDB が目安。

$ ls /usr/share/mysql/my-*.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-small.cnf

WordPress に有効な query_cache_size は large 以上じゃないと入ってない。そのままだと query_cache_size は 0 (ゼロ) になる。

$ grep "query_cache_size" /usr/share/mysql/my-*.cnf
/usr/share/mysql/my-huge.cnf:query_cache_size = 32M
/usr/share/mysql/my-innodb-heavy-4G.cnf:query_cache_size = 64M
/usr/share/mysql/my-large.cnf:query_cache_size= 16M

/etc/my.cnf を my-large.cnf で置き換えて MySQL を再起動。

$ cp -a /etc/my.cnf /etc/my.cnf.orig
$ sudo cp /usr/share/mysql/my-large.cnf /etc/my.cnf
$ sudo /sbin/service mysqld restart

設定状況は次のコマンドとかで確認できる。query_cache_size が 0 (ゼロ) だとあほあほ。

$ mysqladmin -u root -p variables | grep query_cache
$ echo "SHOW VARIABLES LIKE 'query_cache_%';" | mysql -u root -p

現在のキャッシュ状況は次のコマンドなんかで確認できる。

$ echo "SHOW STATUS LIKE 'Qcache%';" | mysql -u root -p
タイトルとURLをコピーしました