PostgreSQL物化视图刷新“堆叠”
Posted
技术标签:
【中文标题】PostgreSQL物化视图刷新“堆叠”【英文标题】:PostgreSQL Materialized View Refresh "stacking" 【发布时间】:2017-10-11 16:53:27 【问题描述】:版本:9.4.10 是否请求刷新物化视图堆栈?
例如: 我有一个物化视图,它根据我的主表上的 INSERT/UPDATE/DELETE 同时刷新。如果这个触发器被多个用户频繁调用,物化视图会将这些刷新堆叠在一个队列中,还是会取消当前的刷新执行并运行最近的触发器?
如果它堆叠,是否有人对我如何解决此问题提出建议。我有一个非常大的数据集,我希望刷新视图需要一段时间。
【问题讨论】:
【参考方案1】:我看不出有什么理由会取消当前刷新以支持下一次刷新。对于您描述的模型,我认为您将遇到等待会议的雪崩。我建议您放弃使用触发数据更改来刷新大 mview 的想法。如果您想以某种方式控制“多个真相来源”风险,因此不想将INSERT/UPDATE/DELETE
复制到其他表中,这样它就会保存原始表的一些逻辑副本 - 您可以从实体化视图创建一个表并填充用你的触发器记录在那里,每小时左右刷新 mview 以同步可能的欺骗或差距。它仍然会在刷新期间对所有内容进行质押,但至少不会在每次更改时冻结所有内容...
【讨论】:
以上是关于PostgreSQL物化视图刷新“堆叠”的主要内容,如果未能解决你的问题,请参考以下文章