sgk*_*sgk 3 activerecord ruby-on-rails eager-loading
我的用户表中有大量行,我需要应用急切加载来加载用户的评论。
User.includes(:comments)
由于用户集太大,因此在添加急切加载时会消耗大量内存。
因此,在经历了几个解决方案之后,我以下面的方式结束
User.select(:id).find_in_batches do |user|
users = User.where(id: user_id).includes(:comments)
end
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来使用 find_in_batches 执行急切加载?
您可以像这样使用find_in_batches :
User.where(id: user_ids).includes(:comments).find_in_batches do |users|
users.each do |user|
user.comment
end
end
Run Code Online (Sandbox Code Playgroud)
它会eager_loading comments自动按每个批次进行。
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |