表格与视图与物化视图

use*_*229 9 database postgresql

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

Dev*_*evi 13

这篇文章对这部分有很好的解释。引述其中,

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

...

在两者之间有 MATERIALIZED VIEW - 它是一个 VIEW 在其定义中有一个查询并使用这个查询直接从存储中获取数据,但它也有它自己的存储,基本上充当底层 TABLE( s) 以及在 MATERIALIZED VIEW 上运行的查询。它可以被刷新,就像一个无效的缓存 - 一个会导致其定义的查询再次针对实际数据执行的过程。


wrs*_*der 9

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

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

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

  • “您总是首先从表开始,然后您的使用模式决定您是否需要视图或物化视图。” <---这个 (2认同)