我目前正在学习PostgreSQL。然而,我有点困惑于表、视图和物化视图之间的区别。我理解它们的基本定义和概念,但有时候我很难决定是应该创建表、视图还是物化视图。请问有人能分享一些经验,如何正确地使用它们?它们各自的优缺点是什么?
我目前正在学习PostgreSQL。然而,我有点困惑于表、视图和物化视图之间的区别。我理解它们的基本定义和概念,但有时候我很难决定是应该创建表、视图还是物化视图。请问有人能分享一些经验,如何正确地使用它们?它们各自的优缺点是什么?
这篇文章很好地解释了这个部分。引用它的话:
当您查询一个TABLE时,您直接获取其数据。另一方面,当您查询一个VIEW时,您基本上是在查询存储在VIEW定义中的另一个查询。
...
两者之间有一个MATERIALIZED VIEW - 它是一个VIEW,在其定义中具有一个查询,并使用此查询直接从存储中提取数据,但它还具有自己的存储,基本上充当底层TABLE(S)和在MATERIALIZED VIEW上操作的查询之间的缓存。它可以像失效的缓存一样进行刷新 - 这将导致重新执行其定义的查询以针对实际数据。