WordPressで構築したサイトが遅いと悩む方にデータベースをキャッシュさせることで高速化するデータベースキャッシュについて紹介します。プラグインを導入してチェックマークを入れるだけで導入できるのでぜひ挑戦をしてみてください。
データベースキャッシュとは?
さっそく本題ですが、データベースキャッシュとは、データベースの命令をキャッシュする機能です。WordPressはデータベースにデータを取得させたいときに命令(クエリといいます)を発行します。
例えば、ブログのトップページならば記事一覧を取ってきて!とデータベースに命令することになります。データベースキャッシュを有効にしていないと何度も同じクエリをデータベースは解析しようとします。しかし、データベースキャッシュを利用することで、すでに実行されたクエリをキャッシュさせることができます。そして同じ命令されたときにキャッシュを参照して返却することで高速化を図ります。
初回アクセス時にはWebサーバはデータベースに対してクエリを発行し、データベースはクエリを解析する必要があります。そしてそのクエリを解析した結果をキャッシュに保存しておきます。

2回目以降に同様のアクセスが来た場合、クエリを解析する必要がなく、その場合はキャッシュから情報を取得します。これで解析する手間が省けるため、結果的にブラウザへの表示速度が改善できるというわけです。ちなみにデータが更新された場合はキャッシュを更新する処理が自動で発生するため安心してください。

もう少し厳密に知りたい方へ。WordPressはデフォルトでMySQLというデータベースを使っていますが、その標準機能であるクエリキャッシュを利用することになります。細かくチューニングしたい場合は上記リンクより設定をするとよいでしょう。
データベースキャッシュは頻繁に変更されないデータには有効なキャッシュですが、逆に更新が多いサイトの場合は逆効果に働く可能性があります。設定を有効にした後は必ずLighthouseなどを利用してパフォーマンス確認をするようにしてください。
Webサイトで有効になっているかを確認する方法
データベースキャッシュはWebサイトから簡単に確認することはできません。なぜならデータベースの設定なのでブラウザの世界からは隠ぺいされているからです。設定画面で有効化されているかどうかをチェックする程度にとどめておくべきでしょう。
どうしても確認したい!という方はMySQLのコンソールに入る必要があります。そして、SHOW VARIABLES LIKE 'have_query_cache'
のコマンドをMySQLのコンソールに入力し、その応答で有効になっているかを確認することができます。そのほかコンソールにさえ入ることができれば設定されているキャッシュメモリのサイズやヒットレートなどの詳細も確認できます。
データベースキャッシュの設定方法 by WordPress
それではWordPressでの設定方法を紹介します。キャッシュプラグインであるW3 Total Cacheを利用します。未インストールの方は事前に入れておくことをおすすめします。以下の記事で導入について紹介しています。
W3 Total Cacheの設定画面では、一般設定 > データベースキャッシュを有効化にチェックを入れるだけです。データベースキャッシュ方法もデフォルトでかまいません。どの場所にキャッシュするかを決めるものです。メモリの方が高速ですが、手間をかけたくない方は基本的にディスクで問題ないでしょう。

また パフォーマンス > データベースキャッシュ より設定できる ログインユーザーのクエリをキャッシュしないでください にチェックを入れておくとよいです。基本デフォルトでオンになっているはずなので、特段の理由がない限りはチェックは外さないことをオススメします。

さいごに
今回はデータベースキャッシュの紹介でした。データベースは裏側を支えるシステムなので、ブラウザから見える世界からは遠いですが、キャッシュさせてあげることで性能の向上を図ることができます。ちなみに発行するクエリそのものが悪い場合は、キャッシュでどうにかするよりも、アプリケーションのコードを修正する方が良いです。これは流石にエンジニアさんにお願いしてください。いわゆるスロークエリというものですが、サイトが遅い場合は確認を取ってみると良いでしょう。
本サイトでは表示の高速化に関する記事を多数掲載しています。以下の関連記事から閲覧できるのでぜひご覧ください。