W3 Total Cache 設定ガイド

Database Cache|データベースキャッシュ

W3 Total Cache(以下 W3TC)のDatabase Cache メニューでは、主にデータベースキャッシュの有効期限や特定クエリの除外など、データベースキャッシュの動作に関する詳細な設定をおこなうことができます。

一般的な共用レンタルサーバーを利用する場合、キャッシュ方式はDiskを選択することになり、かえってパフォーマンスが低下することが多いので、データベースキャッシュを利用することはあまりないと思います。

また利用する場合であっても初期値で適切な値がセットされているので、非技術者の方がデータベースキャッシュの設定変更を必要とするケースはほとんどありません。

ここでの設定は、General Settingsで Database Cache を有効化している場合のみ機能します。

General

General(一般・全般)セクションでは、データベースキャッシュに関する管理者向け機能のON/OFFを設定します。基本的には初期値のままで変更する必要はありません。

Don’t cache queries for logged in users

チェックを入れるとログインユーザーに対してデータベースキャッシュを提供しません。通常はONのままにしておきます。

これは、ログインしていないWebサイトの閲覧者と異なり、ログイン中のユーザーは本来フロントエンドからデータベースの変更を伴う操作をすることが予定されているため、常に最新のデータベース値を提供する必要があるためです(ログインして使用するコメントやフォーラムなど)。

したがって、むやみにこのチェックをOFFにしてしまうとログイン中のユーザーに対して意図しない動作を引き起こす可能性があります。

ただし、ログイン中のユーザーに上記のような操作が予定されていないサイト(例えばログイン会員だけが読める記事を提供しているサイト)のように、ユーザーはコンテンツにアクセスするためだけにログインし、サイトのコンテンツを実際に操作したり変更したりすることはない場合は、データベースのキャッシュを検討しても良いでしょう。

Advanced

Advanced(アドバンスド)セクションでは、データベースキャッシュ生成後の処理やデータベースキャッシュから除外するクエリなどを設定します。個人のWebサイトなど一般的な利用においては、あらかじめ適切とされる値が入力されているため、デフォルトのままで変更する必要は全くありません。

Maximum lifetime of cache objects

データベースキャッシュの有効期限を秒単位で設定します。

データベースキャッシュはディスク領域(またはメモリ領域)を圧迫する可能性があるので、この値を大きくしすぎないことをお勧めします。逆に値が小さすぎると、キャッシュをより頻繁に更新することになるため、サーバへの負荷が増加します。

Garbage collection interval

期限切れのキャッシュを削除する間隔を指定します。

アクセスが非常に多いサイトの場合は、より短く設定することが適切な場合がありますが、サーバーへの負荷を考慮する必要があります。通常は初期値(1時間)のままで充分とされています。

Never cache the following pages

この欄で指定したURL(ページまたはディレクトリ)でキャッシュの生成と配信を無効にします。正規表現での記述も可能です。

これは、Generalセクションでログインしているユーザーのクエリをキャッシュすることを選択した上で、キャッシュされたデータベースクエリを使用したくないページがある場合に特に便利です。

正規表現を使った指定方法の例

  • 特定の親ページとその子ページのキャッシュを無効化
    例:親ページがparent という名前の場合
    /parent*
    この場合、parent も parent/child のいずれもキャッシュされません。

  • 特定の親ページ配下にある子ページだけキャッシュを無効化
    例:親ページがparent という名前の場合
    /parent/.+
    この場合、parent はキャッシュされ、/parent/child はキャッシュされません。

  • 特定の文字列を含むURLのキャッシュを無効化
    例:text という文字列を含む場合
    /.*text.*

  • 特定のディレクトリ名を含むURLのキャッシュを無効化
    例:child という名前のディレクトリの場合
    .+/child

  • 特定の投稿名のキャッシュを無効化
    例:投稿名(スラッグ)が child の場合
    */child

Ignored query stems

データベースキャッシュによってキャッシュすべきではないデータベースクエリ(≒データベースへの照会・問い合わせ)を、クエリステム(≒クエリに使用されている文字列の一部)を使って指定します。

一部のデータベースへのクエリに依存するプラグインは、ページが読み込まれる都度、データベースを直接クエリする必要があるため、データベースキャッシュを有効にしている場合に特定のプラグインが誤動作していることに気付いた場合は、この欄に該当するプラグインのクエリステムを追加します。

ちなみにデフォルトで入力されているのは、以下のプラグインについてのもののようです。

これらのプラグインを使用していない場合でも、そのままにしていて問題ありません。

Reject query words

特定の単語または正規表現を含むクエリをデータベースキャッシュから除外します。データベース管理者でない限り、この欄はそのままにしておきます。

Reject constants

キャッシュから除外するWordPressの一部のシステム操作に関する定数を指定します。指定された定数が定義されるとキャッシュが無効になります。こちらも通常はそのままにしておきます。