我们的主表tblLink的主键在其他几个表中也将作为外键,其中一个表将是tblMainData,随着时间的推移,它将是数百万行。
我们只想保持3个月的数据。
剩下的,我们想要清除和保留,以产生历史报告。在这种情况下,最好的机制是什么?
我们是否应该运行一个cron作业来继续删除已经超过3个月的数据?如果是这样,我们如何将其存储在.sql文件中?
发布于 2012-06-23 07:20:41
由于表中有foreign keys,所以不能进行分区,directly.As分区不支持MySQL中的外键。
您可以使用分区,但是接下来您必须为that.you创建工作,通过在表上使用触发器(INSERT/UPDATE/DELETE)确保完整性。
也就是说,只有当父表中存在相应的记录时,才允许插入子表。您必须使用触发器来维护所有这些完整性(插入/更新/删除)。
然后,您可以在表的四分之一基础上创建分区,然后删除分区。
为了创建.sql文件,您可以在mysqldump中使用--where子句,它将创建.sql文件格式的备份。
您还可以为您的旧数据创建csv,以供将来参考。
https://dba.stackexchange.com/questions/19746
复制相似问题