すべてのプロダクト
Search
ドキュメントセンター

Hologres:クエリキャッシュ

最終更新日:Feb 15, 2026

Hologres バージョン 3.1 以降では、クエリ結果をメモリ上にキャッシュする「クエリキャッシュ」機能が利用可能です。システムが同一または類似のクエリを受信した場合、キャッシュから該当する結果を返します。このプロセスにより、データ読み取りおよび計算処理のオーバーヘッドが回避され、クエリパフォーマンスが向上します。クエリキャッシュは、ストレステストや BI レポートなど、高並列・反復的なクエリが発生するシナリオで特に効果的です。これは、クエリ効率を大幅に向上させ、リソースの無駄を削減できるためです。

注意事項

  • クエリキャッシュは、Hologres バージョン 3.1 以降でのみサポートされます。

    説明

    ご利用のインスタンスがそれより前のバージョンを実行している場合、インスタンスのアップグレード」を実行するか、Hologres DingTalk グループに参加してアップグレードをリクエストしてください。オンラインサポート用 DingTalk グループへの参加方法については、「オンラインサポートを受けるには?」をご参照ください。

  • クエリキャッシュはデフォルトで無効化されています。使用前に有効化する必要があります。

    -- クエリキャッシュを有効化します。スーパーユーザ権限が必要です。有効化後、新規接続に対して適用されます。
    ALTER DATABASE <database_name> SET hg_experimental_enable_query_cache=on;
  • クエリキャッシュの結果は弱い一貫性(weak consistency)を保証します。キャッシュの保存期間中にデータが書き込まれた場合、返される結果が不正確になる可能性があります。

  • RANDOM 関数を含むクエリはキャッシュされません。

クエリキャッシュの使用方法

Hologres のメモリは、主にクエリ実行、キャッシュ、メタデータの 3 つのカテゴリに分割されます。キャッシュ領域は、インスタンス全体のメモリの最大 30 % を使用できます。たとえば、ワーカーのメモリ制限が 64 GB の場合、そのキャッシュ領域は最大 20 GB まで使用可能です。クエリキャッシュは、このキャッシュメモリの一部を使用します。

query_cache_percentage:クエリキャッシュに割り当てるメモリの設定

クエリキャッシュが有効に機能するには、専用のメモリ割り当てが必要です。

  • ワーカーあたりのメモリ量 = 20 GB × query_cache_percentage × 0.01

  • 全ワーカー合計のメモリ量 = ワーカーあたりのメモリ量 × ワーカー数

-- 例:query_cache_percentage=2(2%)。割り当てメモリ量 = 20 GB × 2 × 0.01 = 400 MB
SELECT hg_admin_command('set_global_flag', 'query_cache_percentage=2');

キャッシュ済み結果ごとの最大メモリ量の設定

単一のキャッシュ済み結果に対するデフォルトの最大メモリ量は 10 MB です。以下のパラメーターでこの値を変更できます。最大値は 20 GB です。

-- キャッシュ済み結果ごとの最大メモリ量を調整(デフォルト:10 MB)
ALTER DATABASE <database_name> SET hg_experimental_query_cache_max_kb_per_item=10240;

クエリキャッシュの生存時間(TTL)の調整

Hologres のキャッシュは、メモリ制限や保存期間などの要因に基づくエビクションポリシーを採用しています。詳細については、「ストレージ技術の詳細解説」をご参照ください。以下のパラメーターでクエリキャッシュの TTL を調整できます。

  • デフォルトの TTL は 60 秒です。

  • TTL は秒単位で指定します。

-- クエリキャッシュの TTL を秒単位で調整(デフォルト:60 秒)
ALTER DATABASE <database_name> SET hg_experimental_query_cache_expire_time_sec=60;