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



在深入研究涉及聚合的查询的潜在加速之后,我发现更新Materialized Views

REFRESH MATERIALIZED VIEW foo.bar;

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

我有三个相关问题:

  1. 更新实例化视图是否被视为幂等操作?
  2. 如果是这样,它与重新生成表或重新运行查询有何不同?
  3. 刷新实例化视图是否有从缓存中获益的好处?
  1. 是的,如果基础数据在此期间没有更改。

  2. 定义表的查询在刷新实例化视图时运行。所以这里没有区别。但是,如果您需要经常运行相同的查询,而是查询具体化视图,则可以提高性能。

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

相关内容

最新更新