我有一个包含9百万条记录的表。我定期将这些数据同步到第三方。我保留一个列,告诉特定行是否已经同步。Rails 3 - delete_all不支持限制范围,而MySQL支持它
现在我需要删除几乎6 million
同步行,如果运行
Model.where(:sync_flag => true).delete_all
将是一个不错的想法我不知道。每秒钟有数百个插入,我认为这可能会导致锁定表的方式会伤害/阻塞插入(MySQL专家需要在这里纠正)
通过上面的序言,我想到了使用删除在一个循环的限制条款,删除所有记录,直到没有剩下,但有以下
Model.where(:sync_flag => true).limit(5000).delete_all
它提出了一个异常delete_all doesn't support limit scope
。
有没有解决方案来解决这个问题而不离开Rails环境?
将启动5000个删除查询。我使用delete_all只是为了避免它首先 –