PostgreSQL マテリアライズドビューを作成する

PostgreSQL マテリアライズドビューを作成する

PostgreSQLで、マテリアライズドビューを作成する手順を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • PostgreSQL 14.0
  • pgadmin 6.0

マテリアライズドビューを作成

マテリアライズドビューを作成する場合は、「 create materialized view 」を使用します。

create materialized view マテリアライズドビュー名 as
    SELECT文

実際に以下のテーブルから作成してみます。

作成します。

create materialized view mvw_test as 
select 
	id, name 
from testtable

実行結果

マテリアライズドビューが作成されていることが確認できます。

マテリアライズドビュー利用

利用してみます。

select * from mvw_test

実行結果

マリアライズドビューが利用できていることが確認できます。

ただし、マリアライズドビューは元テーブルがupdateされた際は、反映されません。

「testtable」をアップデートしてみます。

update testtable set name = 'john' where id=2

マリアライズドビューが利用してみます。

select * from mvw_test

実行結果

updateした結果が反映されていないことが確認できます。

変更を反映

変更を反映されるには、「refresh materialized view」を使用します。

refresh materialized view mvw_test

実行した後で、もう一度確認してみます。

select * from mvw_test

実行結果

反映されていることが確認できます。

マリアライズドビュー削除

削除する場合は、「DROP MATERIALIZED VIEW」を使用します。

DROP MATERIALIZED VIEW mvw_test

DROP MATERIALIZED VIEW IF EXISTS mvw_test -- あれば削除する場合は「IF EXISTS」を使用