サーバ移行はようやく事前準備が終わりました。mysql の InnoDB 移行を諦めたら、WordPress もあっさり動いた。/home と /usr/local の中身もだいたいコピーできたし、早ければ明日の深夜には移行できるか。でもマザーボード入れ替えが面倒なんだよな…
それはそれとして、WordPress のDBクエリをがんがん削ったら、サーバの load average がどんどん下がって楽しい。
Monobook 0.8 でもクエリ数だいぶ減りましたが、さらに plugin や wp-includes までいじっております。
is_blog_installed()を一行目で問答無用に return true させると2個削減。だってインストールされてるのって当然ぢゃん。- Simple OpenID plugin も毎回テーブルチェックやってたので、これを return true させて3個削減。
- 実は WP23 Related Posts plugin がまた大量のクエリを吐いていた。関連発言を5個表示させる状態だと11回もクエリしやがる。これもキャッシュした。効くのは is_single の時だけだけど。
get_posts()のコードが不思議。wp_cache_get()でキャッシュに入ってるかのチェックはやるくせに、データをキャッシュに入れる方が抜けてる。WordPress 2.5 では直ると思うけど、先走って修正してしまった。previous_post_link()とnext_post_link()も2回ずつクエリを吐いて、しかもキャッシュしない。なので Monobook 専用の関数を作った。- つまり手当たり次第にキャッシュしてるので、XCache の var cache 容量を64Mまで増やした。
とかやったら、トップページ表示時のクエリ回数が4回! (しかも最初の一回は set names utf-8)
実に素晴らしいな。

