我确实阅读了有关交易和报告数据库的帖子。
我们有单表,用于报告(历史)目的和交易
例如:带字段的订单
orderid,ordername,orderdesc,datereceived,dateupdated,confirmOrder
将此表拆分为neworder和orderhistrory是一个好主意 新的ordertable记录当天的交易(当天收到的订单每隔ms选择,插入和更新活动。后来我们将此表与订单历史合并
这是推荐的方法吗? 您认为这会最大限度地减少数据库的负载和处理时间吗?
答案 0 :(得分:0)
PostgreSQL支持基本的表分区,它允许将逻辑上一个大表分成更小的物理块。 More info provided here。
答案 1 :(得分:0)
回答你的第二个问题:没有。将数据从一个地方移动到另一个地方是一个额外的负担,如果你使用转换表进行报告,你将无法拥有。但在做出这个决定之前,还需要提出一些其他问题。
这就是报告表的用武之地。我见过的方法通常涉及拥有“数据仓库”,无论是作为单个表还是整个数据库实现。该仓库按时间表填充来自事务表的数据,该数据随后触发生成报告。这似乎是您建议的方法,并且是完全有效的方法。最终,您需要回答的一个问题是何时您希望服务器处理负载。如果这可以在非高峰时段按计划完成,我会说去吧。如果需要在任何给定时间运行,那么您可能希望保持单表方法。
当然,没有什么可以说你做不到两者。我见过一些系统,这些系统在事务表上运行了小型按需报告,计划了历史数据的存储,然后是针对该历史数据的长期运行报告。这真的只是你想要数据的实时性。