我对性能有疑问。我有一个包含订单头的表,每当订单发货并开具发票时,行从订单头移动到orderheaders_history。这是由其他人设计的。现在我认为orderheaders表中的一列定义了当前行或历史行更有效。实际上哪种方式更好?
谢谢!
答案 0 :(得分:1)
只有拥有大量记录时,单独表格中的历史数据才有意义。什么“很多”只能由你决定。如果您的查询速度变慢并且将历史数据与更新的数据分组并不是业务需求,那么您可以将它们分开,但一般来说,我会有一个包含当前和历史数据的表,并且只有在我可以建立一个坚实的情况下我会去找一张历史表。
一旦达到了大量的记录并且你需要将记录放在不同的位置,你就可以开始将数据转储到更便宜,速度更慢的硬盘中(更不用说不太可靠了),这样你就可以降低总数数据存储成本,同时仍然可以使用所有数据。
最后,如果您已经有一个围绕此设置自动执行的工作流程,我不会仅仅为了更改它而改变它。更改数据库是有风险的,您不希望在没有充分理由的情况下丢失或损坏数据。如果进程确实产生了开销,并且您没有从这些表的单独中受益,那么我建议您考虑恢复到更简单的表结构。