我在做一个功能,删除 30 天之前的数据,但是数据量挺大的,我就用了 while,一直查询到没有三十天之前的数据结束,发现进入了无限循环,日志如下
CACHE (0.0ms) SELECT decision_detail_logs
.* FROM decision_detail_logs
ORDER BY decision_detail_logs
.id
ASC LIMIT 1 [["LIMIT", 1]]
这就能说明为什么进入无限循环了。
while 语句是这样的
while DecisionLog.where("created_at < '#{31.days.ago}'").limit(100).size > 0 do
查询语句每次都使用的是 cache。 有什么办法让 while 强制查询一次不使用缓存嘛