为什么刷新物化视图会同时阻止插入/更新?

时间:2015-11-06 07:57:58

标签: database postgresql database-design

对于这个问题,我们假设物化视图具有两个表连接。

刷新此视图会同时阻止所有更新/插入。这是为了确保在刷新视图时数据是最新的。

但是为什么我们不能在执行此操作时允许更新/插入,在执行刷新之后仍然会有更新,并且在刷新期间完成更新/插入可以在下次刷新时反映。

阻止插入/更新的设计决定究竟是什么?我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

这是一个微妙的。

它将物化视图锁定为自己的。不是它引用的表格;它们不会被写入锁定并可能继续正常使用。

REFRESH MATERIALIZED VIEW CONCURRENTLY允许刷新继续进行,而不会阻止视图在SELECT更新时按the manual进行更新。在更新大视图的一小部分时,它也可以表现得更好。