表格与视图与物化视图

时间:2014-05-18 00:53:56

标签: database postgresql

我目前正在学习postgresql。但是,我对表,视图和物化视图有点困惑。我理解基本定义和概念。但有时候,我很难做出我应该创建表格,视图或物化视图的决定。有人会分享一些如何正确应用它的经验吗?一个人的优点和缺点是什么?谢谢

2 个答案:

答案 0 :(得分:8)

表格是存储数据的地方。您始终首先从表开始,然后您的使用模式决定您是需要视图还是物化视图。

如果您经常在多个位置以相同方式加入或过滤相同的表,则视图就像存储的查询以供将来使用。

物化视图就像两者的组合:它是一个通过视图自动填充和刷新的表。如果您正在使用视图,并且想要预先加入或预先聚合行以加快查询,则可以使用此方法。

答案 1 :(得分:3)

This article对此部分有一个很好的解释。引用它,

  

查询TABLE时,直接获取其数据。在另一   当你查询VIEW时,你基本上是在查询另一个查询   存储在VIEW的定义中。

     

...

     

两者之间有材质化的视图 - 这是一个有视图的视图   在其定义中查询并使用此查询直接获取数据   从存储,但它也有自己的存储,基本上是行动   作为底层TABLE和查询之间的缓存   在MATERIALIZED VIEW上操作。它可以刷新,就像一个   无效的缓存 - 一个会导致其定义查询的进程   再次针对实际数据执行。