我在Ruby on Rails rake任务中有一个类似下面的循环。
Account.all.each do |a|
问题是有1000万条记录,内存无法控制地上升。我怎么能把它分段来运行一个大循环呢?
答案 0 :(得分:1)
您可以使用批量加载记录的find_each
。
另一种方法是只加载IDs
,然后获取每个记录一次。
我不知道你在做什么需要加载你的整个帐户表,但如果它是一次性任务你有其他可能的选择,比如使用后台工作。如果它是一个重复的任务或视图的结果,您可能需要遵循不同的方法,如分页。