我有一個包含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只是爲了避免它首先 –