【问题标题】:PostgreSQL materialized view is blocking reads while being refreshedPostgreSQL 物化视图在刷新时阻塞读取
【发布时间】:2016-07-31 17:54:20
【问题描述】:

我有一个复杂的查询,需要 2 到 3 分钟才能运行。对于我们的 javascript 和 python flask web 应用来说,这自然是不可接受的响应时间。

为了提高性能,我将查询设为物化视图,并安排它每 30 分钟刷新一次。这很好用,但是,我遇到了一个问题,即实际刷新块从 Web 应用程序中读取。因此,应用程序每 30 分钟就会停止 2 到 3 分钟。解决这个问题的好方法是什么?我的第一个想法是在 python 后端添加缓存,但我觉得应该有一个更简单的解决方案我可以做 - 也许在 postgres 本身?

有什么想法吗?

【问题讨论】:

    标签: javascript python postgresql flask materialized-views


    【解决方案1】:

    原来有一个我不知道的“CONCURRENTLY”关键字:

    刷新实体化视图而不锁定实体化视图上的并发选择。

    http://www.postgresql.org/docs/9.4/static/sql-refreshmaterializedview.html

    【讨论】:

      猜你喜欢
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 2011-07-09
      • 2010-09-27
      • 2013-12-04
      相关资源
      最近更新 更多