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のウィンドウに維持する必要があります。