PostgreSQL聚合视图

时间:2010-08-02 01:12:57

标签: sql postgresql

每次更改下表中的某个表时,是否完全重新计算了PostgreSQL中的视图?

更确切地说,如果我在表votes上有聚合视图,那么当在投票表中进行任何更改时,是否需要重新计算视图?

如果我希望经常更改votes表,那么聚合视图的替代方法是什么?我需要简单查询的多对数时间复杂度。

2 个答案:

答案 0 :(得分:3)

Postgres中的普通VIEWS(以及我所知道的其他RDBMS)实际上只不过是存储的SELECT语句。它没有将实际信息存储在静态表中 - 这就是物化的VIEW(Postgres目前没有,你必须roll your own)。它在某种意义上“每次重新计算”,因为它不存储计算的数据。

如果要存储复杂的计算,请检查previous link如何进行物化视图。

编辑:如果像OMG Ponies说的那样,你在谈论基础表上的ALTER TABLE - 那么它很简单... Postgres不会让你更改VIEW中使用的列的定义而不删除VIEW第一

答案 1 :(得分:0)

您可以使用PostgreSQL的物化视图。

PostgreSQL当然可以实现物化视图。由于PostgreSQL强大的PL / pgSQL语言和功能触发系统,物化视图在某种程度上易于实现。我将研究在PostgreSQL中实现物化视图的几种方法。

link text