【发布时间】:2021-07-01 21:04:22
【问题描述】:
通过将 max_parallel_workers_per_gather 设置为 4 来并行创建物化视图。我可以看到并行会话开始并创建 mview 比串行执行快得多(10 分钟 - 并行 vs 一个多小时 - 串行)。
现在我希望 mview 的刷新时间与创建时间差不多,我可以接受它只需要创建时间来执行刷新视图时所需的步骤。但我注意到,刷新根本没有并行运行——即使在将 max_parallel_workers_per_gather 设置为 4 之后。PostgreSQL 11.6 是否不支持在创建 mview 时并行刷新它?
【问题讨论】:
-
不,很遗憾。我个人删除并重新创建(+所有依赖对象)重物化视图,并刷新更简单的视图
-
感谢@JGH 的分享,我最终做了同样的事情。
-
@nmakb.说点别的,在我看来,我认为只读表和具有相同结构的物化视图之间没有太大区别。你认为物化视图比表有什么提升吗在实践中?
-
@spikle,是的,有区别。如果您使用只读表,并且想要刷新它 - 如果您想保持 orig 对用户可用,则需要创建新表并将其重命名为 orig。如果您删除 orig 只读表,那么在重新创建它时它将不可用。当您使用物化视图时,这两种情况都需要注意,因为它还提供并发刷新功能。
标签: postgresql