我需要对此案提出新的意见。任何想法都表示赞赏。
输入:我们有一个巨大的percona mysql(5.5)数据库,需要几个Tb(太字节)。关于innodb引擎的表。 应尽快删除超过一半(2/3)的大小。 我们还有主从配置。
作为实现这一目标的最快方法,我正在考虑以下解决方案: 对从服务器上的每个表执行(以避免生产停机):
问题在于我们有很多FK约束。此外,我害怕在此过程中打破复制。
问题: 1)此解决方案中FK约束的潜在问题是什么? 2)如何不破坏复制? 3)意见?替代解决方案?
提前谢谢。
答案 0 :(得分:0)
如果您可以将db脱机(也就是说没有人正在访问除您之外的数据库)一段时间,您可以使用您的解决方案但是您需要先放弃FK并在之后重新创建它们。您还应该检查将通过复制操作更改数字的AUTO_INCREMENT
列。
所以我采用了一种缓慢的方法,我创建了一个程序,它将使用聚簇主键从表中删除批量行,然后我将其安排为每n秒运行一次。