- Choco Soft - https://www.choco.org.uk/chocodb -

国産の雄PostgreSQLを使いこなそう Part4 MATERIALIZED VIEW


前のロールが終わってないのにいきなりVIEWですが、これを語らずしてPostgreSQLを語る事なかれ!

通常のVIEWはSQLとして、何かが実行される度にその結果を表示しますがこいつは常に同じ情報しか返しません。
JOINした結果を保持し続けるVIEWです。

よって、このVIEWに対する検索速度は速いですし、他のテーブル、VIEWに対して低負荷です。
データベースで管理するデータが少ない、検索条件が少ない等の場合は不要ですが中規模以上の開発には不可欠です。

作成方法は、こんな感じ。

#CREATE MATERIALIZED VIEW myview AS SELECT * FROM mytable;

AS句で元のテーブルから抽出し、作成したVIEWに名前を付けるだけです。
上記は、テーブル(mytalbe)からセレクトした結果をマテリアライズドビュー(myview)にしました。

データを更新する時は専用のコマンドが必要です。

#REFRESH MATERIALIZED VIEW myview;

上記のコマンドを毎日夜間バッチで深夜2時頃に動かす等が通常運用となります。

このVIEWは、あくまで速さを求めるものです。