定期的にリフレッシュビューのPostgreSQLをマテリアライズするための簡単な方法

PostgreSQLの9.3は、マテリアライズド・ビューを9.4 CONCURRENTLY非ブロックオプションを追加しましたが、リフレッシュオプションREFRESHの... NEXT ...タイミングで同様のSTARTをサポートしていませんサポートするために始めました。

どのように定期的なリフレッシュがマテリアライズド・ビューを達成するために?Baiduは、主に以下の三つの結果です:

  • このようcrontabのタイミングタスクでのLinux / UnixやWindowsなどのオペレーティング・システムでは、
  • プラグインpgAgentと;
  • トリガーを使用して、(EACH STATEMENT FOR ... ...)通常、文レベル。

最近到達\コマンドを見て、私たちは、マテリアライズド・ビューをリフレッシュするための新しい方法を発見しました。

直接サンプルコード上の多くの説明:

-マテリアライズド・ビューの作成
CREATE MATERIALIZED VIEW MAX_ID_MVIEW
AS
  SELECT PART_IDを、MAX(ID)がmax_id
  PART_ID BY PART_DETAILからグループを;
 
-あなたはユニークなインデックスが作成する必要がない場合CONCURRENTLYリフレッシュしなければ
UNIQUE INDEX IDX_MAX_ID ON MAX_ID_MVIEW(PART_IDをCREATE )。

-時計を使用して、コマンドは、すべての120Sは、ビュー、マテリアライズドリフレッシュし
\鑑賞、REFRESHがMAX_ID_MVIEW CONCURRENTLY MATERIALIZED VIEWを 120

効果的なテスト済み、しかし欠点は、それが実行されたpsqlのウィンドウに維持する必要があります。

おすすめ

転載: www.linuxidc.com/Linux/2019-07/159605.htm