作为Postgres 10模式的一部分,我有两个表:current
和historic
--它们都有相同的列。
current
大约有20列(+/-),并保存帐户的最新信息。我需要保留一个时间戳,显示信息何时传入,但20列中的每一列都会在不同的时间得到更新。因此,每个帐户current
将有numberOfColumns
行(而不是一个帐户的一行) --当新的数据出现在一个列时,只保存该列信息的行将被更新。
这样我就可以快速访问帐户的当前信息。
但是,我也需要存储历史记录;因此,每次更新current
时,行(包含单个条目--除了元数据)将被“移动”到historic
表中。此表的列数相同。
因此,我将得到一个由20多个列组成的非常稀疏的表,每一行都包含一个时间戳、一列的“数据”值和一些元数据(例如account_id
)。
current
表将经常被读取。INSERT
s和SELECT
s都必须非常快。
historic
表可能通常用于离线分析,空间是SELECT
性能的一个优先事项,但是INSERT
s必须是快速的(因为它们是在更新current
时完成的)。
所以,我的问题是:
提前谢谢。
编辑(S):
回应@JonathanFite:
添加模式和示例查询将占用大量空间;但是,
这有助于澄清问题吗?
发布于 2018-12-29 10:55:22
对于当前和历史数据,您应该使用一个表和视图。
原因:
https://dba.stackexchange.com/questions/225891
复制相似问题