0

我确实阅读了有关事务和报告数据库的帖子。我们有一个用于报告(历史)目的和事务性的表,例如:带有字段
orderid、ordername、orderdesc、datereceived、dateupdated、confirmOrder 的订单

将这张表拆分为neworder和orderhistrory是不是一个好主意新的ordertable记录了当天的交易(对于当天收到的订单,每毫秒选择,插入和更新活动)。稍后我们将此表与订单历史合并

这是推荐的方法吗?您认为这会最大程度地减少数据库的负载和处理时间吗?

4

2 回答 2

0

回答您的第二个问题:不。将数据从一个地方移动到另一个地方是一种额外的负担,如果您使用事务表进行报告,则不会有这种负担。但在做出此决定之前,您还需要问一些其他问题。

  1. 这些报告多久运行一次? 如果您每小时运行一次这些报告,将它们放在同一个表中可能是有意义的。但是,如果此报告需要一段时间才能运行,您需要注意不要占用将其用作事务表的其他客户端的资源。
  2. 这些报告需要更新到什么程度? 如果报告的运行时间少于每天或每周,那么在报告中拥有最新数据可能并不重要。

这就是报告表的用武之地。我见过的方法通常涉及拥有一个“数据仓库”,无论是作为单个表还是整个数据库实现。该仓库按计划填充事务表中的数据,随后触发生成报告。这似乎是您建议的方法,并且是完全有效的方法。最终,您需要回答的一个问题是您希望服务器何时处理负载。如果这可以在非高峰时段按计划完成,我会说去吧。如果它需要在任何给定时间运行,那么您可能希望保留单表方法。

当然,没有什么说你不能两者兼得。我见过一些系统,它们具有在事务表上运行的小型按需报告、历史数据的预定仓库以及针对该历史数据的长时间运行的报告。这实际上只是您希望数据的实时性的问题。

于 2012-12-21T17:14:32.243 回答
0

PostgreSQL 支持基本的表分区,它允许将逻辑上是一张大表分割成更小的物理块。此处提供更多信息

于 2012-06-11T23:56:08.713 回答