7.4. インメモリクエリキャッシュ

Pgpool-IIは読み出しクエリの結果をキャッシュし、後で再利用することができます。 これは、同じ読み出しクエリを何度も発行するタイプのアプリケーションでは大きなメリットがあります。 2つのクエリが文字列として同じで(そしてもしあればプリペアドステートメントのパラメータ)が同じなら、それは「同じ」クエリと見なされます。 最初にそのクエリが送信されると、Pgpool-IIはクエリの結果を保存し、PostgreSQLに一切問い合わせることなく2つ目のクエリのために使用します。 この技術は項5.13で説明されています。

7.4.1. インメモリクエリキャッシュを使用すべきでない場合

テーブルが更新されると、そのテーブルに対するクエリの結果は変わってしまう可能性があります。 不整合を防ぐために、Pgpool-IIは関連するテーブルが更新されるとクエリキャッシュデータを破棄します。 ですから、頻繁に更新されるデータベースはインメモリクエリキャッシュに向いていません。 クエリキャッシュを使うのに適したデータベースかどうかを調べるには、SHOW POOL_CACHEを使ってください。 クエリキャッシュのヒット率が70%未満なら、たぶんクエリキャッシュの利用は避けたほうが良いでしょう。