在Postgres中更新实例化视图是幂等操作吗?

时间:2020-06-25 14:09:27

标签: database postgresql

深入研究potential speed-ups for queries that involve aggregations之后,我发现使用以下内容更新Materialized Views

REFRESH MATERIALIZED VIEW foo.bar;

可能会大大提高查询聚合数据的能力。

我有三个相关的问题:

  1. 更新实例化视图是否被视为idempotent操作?
  2. 如果是这样,与重建表或重新运行查询有何不同?
  3. 刷新实例化视图是否有益于缓存?

1 个答案:

答案 0 :(得分:2)

  1. 是的,如果基础数据在此期间没有变化。

  2. 刷新物化视图时,将运行定义表的查询。因此,这里没有区别。但是,如果您需要经常运行相同的查询,而改为查询物化视图,那将会提高性能。

  3. 就像任何查询一样:如果基础表被缓存,REFRESH将会更快。