数据库历史记录更改,相同或不同的表?

时间:2013-06-04 07:10:52

标签: database performance

我知道关于网络商店的历史表有很多帖子,但我仍然有同样的问题:如果有很多(1.000.000+)记录的性能,我必须将产品更改存储为原始产品的新行表,还是我必须创建一个单独的表,其中包含相关列以存储产品的历史版本?

我希望有人能给我一个明确的建议。

2 个答案:

答案 0 :(得分:0)

构建单独的历史记录表,以避免过多的数据和更好的性能。您将使用单独的查询来选择普通表或记录历史记录 - 因此您可以提供不同的索引来优化查询。 您甚至可以将表存储在不同的集群中。

在主表中使用以下标记:

  • record_version
  • 时间戳
  • 用户(变更作者)

也可以选择:

  • create_date
  • update_date
  • delete_date(如果需要)

答案 1 :(得分:0)

我肯定会使用不同的表,甚至可能在不同的物理存储上使用不同的表空间:访问特性完全不同!

产品表的查询次数远远超过更新,且尺寸相对稳定。

历史记录表的负载低,常量插入,没有更新。