PostgreSQL实体化视图刷新可以与pg_dump同时运行吗?

lymnna71  于 2023-03-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(133)

我认为REFRESH MATERIALIZED VIEWpg_dump之间有问题。
第一个必须等待第二个(或者相反?)
为什么求你?

e1xvtsh3

e1xvtsh31#

The documentation描述了REFRESH MATERIALIZED VIEWCONCURRENTLY选项:
如果不使用此选项,则影响许多行的刷新将使用较少的资源并更快地完成,但可能会阻塞尝试从实体化视图读取的其它连接。
因此,实体化视图在刷新时,所有并发访问都将被阻塞。另一方面,pg_dump需要访问实体化视图。因此,谁先访问,谁就阻塞谁。
有两个选项:

  • 如果可以在示例化视图上定义唯一索引,并且不介意刷新时间较长,则可以使用REFRESH MATERIALIZED VIEW CONCURRENTLY
  • 使用pg_basebackup而不是pg_dump来备份数据库

相关问题