我使用PostgreSQL在异步刷新的物化视图中存储数百万行。数据是来自多个表的多个连接的源。
是否可以在物化视图中流/通知哪些行被更改(无论是创建/更新/删除)?
答案 0 :(得分:0)
我的声誉太低了,所以我不得不在答案部分询问。
从一开始 - 为什么使用物化视图存储数百万行?将它们存储在经典表格中不是更好吗?有了它,您可以使用触发器来记录此实体的更改。
答案 1 :(得分:0)
从Postgres 9.4开始,您可以“同时”刷新实例化视图,以仅影响新行和修改后的行。
来自http://www.postgresqltutorial.com/postgresql-materialized-views/
“使用CONCURRENTLY选项,PostgreSQL创建实例化视图的临时更新版本,比较两个版本,并仅执行差异的INSERT和UPDATE 。您可以在实例化视图中查询它更新。使用CONCURRENTLY选项的一项要求是,实例化视图必须具有UNIQUE索引。请注意,CONCURRENTLY选项仅在PosgreSQL 9.4中可用。”
官方文档:https://www.postgresql.org/docs/current/sql-refreshmaterializedview.html