インメモリキャッシュPgpool-IIの全てのモードでインメモリクエリキャッシュを利用することができます。テーブルが更新によりキャッシュが古くなっても、Pgpool-IIの再起動の必要はありません。基本的に以下のSELECTはキャッシュされません。記載することでキャッシュされます。検索結果をペアで記録します。同じSELECT文が発行された場合に、Pgpool-IIはキャッシュから結果を返します。SQLの解析もPostgreSQLへのアクセスも行われないため、インメモリキャッシュからの結果の提供は非常に高速です。反面、キャッシュをストアするオーバヘッドが生じるので、通常の方法より遅くなる場合も有ります。あるテーブルが更新された場合、Pgpool-IIは自動的にそのテーブルに関係する全てのキャッシュを削除します。そのため、更新が多いシステムではパフォーマンスが悪くなります。POOL_CACHEを使って確認できます)が70%以下の場合は、インメモリクエリキャッシュ無効にしたほうがいいかもしれません。(boolean)onにするとメモリキャッシュが有効になります。デフォルトはoffです。このパラメータはサーバ起動時にのみ設定可能です。enable_shared_relcacheが有効の場合、クエリキャッシュはリレーションキャッシュでも使用されます。その上、たとえmemory_cache_enabledパラメータがオフに設定されいたとしても、クエリキャッシュは使用されます。リレーションキャッシュの詳細は項5.15を参照してください。(string)キャッシュに用いるストレージのタイプを指定します。このパラメータで有効な全ての値のリストを以下の表に示します。memcachedを使用デフォルトは'shmem'です。このパラメータはサーバ起動時にのみ設定可能です。以下はshmemとmemcachedの両タイプのクエリキャッシュで有効なパラメータです。(integer)クエリキャッシュの寿命を秒単位で設定します。デフォルト0で、キャッシュの期限はなくなり、関連テーブルが更新されるまではキャッシュが有効になります。このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。memqcache_expireとmemqcache_auto_cache_invalidationは互いに独立です。(boolean)onに設定した場合、更新されたテーブルに関連するキャッシュを自動で削除します。offならばキャッシュは削除されません。デフォルト値はonです。memqcache_auto_cache_invalidationとmemqcache_expireは互いに独立です。このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。(integer)キャッシュされるSELECTクエリ結果の最大サイズをバイト数で指定します。この値より大きいサイズのデータの結果はPgpool-IIにキャッシュされません。サイズの制約によりデータのキャッシュができなかった場合、以下のメッセージが表示されます。共有メモリによるクエリキャッシュ('shmem')の場合は、memqcache_maxcacheはmemqcache_cache_block_sizeを超えないように、'memcached'を使用する場合は、slabのサイズ(デフォルトで1MB)を超えないようにしてください。このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。(string)SELECT結果がPgpool-IIにキャッシュされるべきテーブル名のリストをカンマ区切りで指定します。このパラメータは、VIEWとunloggedテーブルにのみ適用されます。通常のテーブルは、black_memqcache_table_listに記載されていない限りキャッシュされます。つけた形で使われます)。スキーマ名を付けないテーブル名とスキーマ名を付けた形の両方をクエリの中で使う場合は、両方共リストに登録してください。black_memqcache_table_listはwhite_memqcache_table_listより優先されます。このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。(string)SELECT結果がPgpool-IIにキャッシュされるべきでないテーブル名のリストをカンマ区切りで指定します。つけた形で使われます)。スキーマ名を付けないテーブル名とスキーマ名を付けた形の両方をクエリの中で使う場合は、両方共リストに登録してください。"table1,public.table1"このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。(string)SELECTクエリが使用するテーブルにOIDを格納するディレクトリへのフルパスで指定します。memqcache_oiddirには、各データベースのためのディレクトリが格納されます。そのディレクトリ名はデータベースのOIDです。各データベースディレクトリの下には各テーブルのためのファイルが格納されます。そのファイル名は同じくテーブルのOIDです。キャッシュを削除する際のキーとして使われます。Pgpool-IIの通常の再起動ではmemqcache_oiddirの中身はクリアされません。このパラメータはPgpool-IIの設定を再読み込みすることで変更可能です。共有メモリ使用時の設定これらはキャッシュストレージとして共有メモリを使用した場合に使われるパラメーターです。(integer)共有メモリのキャッシュサイズをバイト単位で指定します。このパラメータはサーバ起動時にのみ設定可能です。(integer)キャッシュエントリの数を指定します。この設定項目は、キャッシュの管理領域の大きさを決めるために使用します。48バイトで計算できます。少なすぎるとキャッシュを登録することができずにエラーになります。逆に多すぎると単に空間の無駄になります。このパラメータはサーバ起動時にのみ設定可能です。(integer)キャッシュのブロックサイズを指定します。Pgpool-IIはmemqcache_cache_block_sizeのブロックで管理されたキャッシュメモリを利用します。SELECT結果はこのブロックに詰め込まれ、1つのブロックに収まらなければなりません。従って、memqcache_cache_block_sizeを検索結果が超えると、キャッシュされません。memqcache_cache_block_sizeは、512以上の値でなければなりません。このパラメータはサーバ起動時にのみ設定可能です。memcached使用時の設定これらはキャッシュストレージとしてmemcachedを使用した場合に使われるパラメーターです。(string)memcachedが動いているホスト名またはIPアドレスを指定します。Pgpool-IIと同じマシンでmemcachedを動かす場合は、'localhost'が使えます。このパラメータはサーバ起動時にのみ設定可能です。(integer)memcachedのポート番号を指定します。このパラメータはサーバ起動時にのみ設定可能です。