gpt4 book ai didi

ruby-on-rails - 如何在 find_in_batches rails 中使用 Eager loading(includes)

转载 作者:行者123 更新时间:2023-12-02 18:54:05 24 4
gpt4 key购买 nike

我在 users 表中有大量行,我需要为其应用预先加载来加载用户的评论。

User.includes(:comments)

由于用户集太大,因此在添加预先加载时会消耗大量内存。

所以在经历了几个解决方案之后,我以下面的方式结束

User.select(:id).find_in_batches do |user|
users = User.where(id: user_id).includes(:comments)
end

有没有更好的方法来使用 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

它会自动eager_loadingcomments每批处理。

关于ruby-on-rails - 如何在 find_in_batches rails 中使用 Eager loading(includes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66418745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com