我的应用程序写入一个表;这个名称是不可变的。它变得非常大(数百万行),因此它的大小使得插入比需要的慢。我的解决方案是在core中只保存一周的数据。因此,我构建了一个表,将一周以上的所有内容按预定的间隔放入其中。
在调度间隔,脚本获取core中的所有新值,对它们进行操作,并将它们放入第三个表core_archive中。该模式使得corecore_details中的pk具有外键约束。
我的问题是,由于这个外键约束(介于core_detailscore之间),我无法从core_detail中删除任何行。那我该怎么办?
选项:
执行alter table将旧外键约束指向core。不过,在大型生产数据库上,这确实不应该也不可能安全地完成。
是吗?[我没有其他可行的想法…斯塔克有什么想法吗?]

最佳答案

您还必须创建一个core_details_archive表,并归档core_archive中指向计划归档的core行的行。根据您的数据结构,此方法可能需要扩展到任意数量的表。

10-08 02:07