我试图弄清楚如何在 PostgreSQL 数据库上为产品目录实现双时态表。随着时间的推移,目录表可能会变得非常大。对于“今天产品 x 的价格是多少”和“一周前产品 x 的价格是多少”等频繁查询,我想获得非常好的性能。我想在“两个月前产品 x 的价格是多少”之类的查询中取得良好的性能。我还需要能够回答诸如“两周前我是怎么想的,在那之前三周产品 x 的价格是多少”(因此是双向的)之类的问题。因此,我也在考虑对数据进行分区。
我确实找到了https://pgxn.org/dist/temporal_tables/来帮助实现的系统时间方面(业务时间将是“手动”)和https://github.com/keithf4/pg_partman用于分区,但我想知道这两者是否可以很好地协同工作和/或是否有人成功使用了这些(或替代品)。