gpt4 book ai didi

ruby-on-rails - rails 中的渴望加载和延迟加载

转载 作者:行者123 更新时间:2023-12-03 08:46:27 25 4
gpt4 key购买 nike

我对急切加载和延迟加载感到困惑,rails查询的性能是否有差异?

有什么方法可以同时实现这两种方法吗?

最佳答案

Eager Loading

一种提高性能的方法是减少SQL查询的数量。您可以通过热切的加载来实现。

User.find(:all, :include => :friends)

在这里,您仅触发两个查询:

1)面向所有用户。

2)给所有的用户 friend 。

Lazy Loading:

当您有一个对象与许多对象相关联时,例如一个用户有许多 friend ,并且您想要显示一个列表(如Orkut一样),您将触发与 friend 一样多的查询,并为对象本身添加一个查询。
users = User.find(:all)

然后查询每个用户 friend ,例如:
users.each do |user|
friend = Friend.find_by_user_id(user.id)
end

这里

1)对所有用户进行一次查询。

2)N查询N号。的用户 friend 。

看看: Rails 3: Lazy loading versus eager loading

希望能帮助您理解这一点。

关于ruby-on-rails - rails 中的渴望加载和延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084355/

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