仅在关系数据库中使用一个表进行读取是否切实可行?

时间:2017-02-10 18:12:57

标签: postgresql relational-database

我知道这个问题在真正的数据库世界中并不理想,但是,我正在构建一个Web REST api来服务一个可能需要连接几乎每个表的结果(我肯定会使用规范化)。

所以可以使用一个表来保存用于读取API的元数据,但是当其他表中的数据更新时,表也会更新吗?我顺便使用PostgreSQL。

1 个答案:

答案 0 :(得分:1)

这不是很清楚,所以我将陈述我对这个问题的理解,并告诉你我所看到的是权衡。

首先......听起来我想要有效地实现元数据表并在其他表更新时实时更新。这不是PostgreSQL中MATERIALIED VIEW支持的真正含义。

只要有变化,您就可以使用触发器来更新数据。由于PostgreSQL处理事物的方式,这会导致更多的磁盘和CPU活动,但后者可能会比后者增加更多。因此,如果您受到严重的CPU限制,那么会造成比I / O绑定更多的问题。

以这种方式使用触发器会给数据库增加相当大的复杂性,并且可能会减少写入扩展,但如果数据很少写入但经常读取,则可能是明显的胜利。

所以回答你的问题,是的,至少在某些情况下它是实用的。在您的情况下是否实用,将由您决定。