为什么要使用lazy / eager加载数据库级别

时间:2014-12-02 12:20:49

标签: database hibernate lazy-loading eager-loading

我目前正在阅读关于渴望与懒惰加载的内容。我很困惑并将其与负载与空载进行比较。

假设我有两个UI部分。其中一个我希望显示子数据和父数据,而在第二个UI我只是显示父数据。然后我应该在数据库级别编写两个不同的调用,一个是加载子数据和另一个加载父数据。

懒惰/急切加载在这种情况下有多大帮助,因为如果我进行延迟加载,那么它将在第一种情况下消耗更多时间,因为它将在稍后查询而不是使用连接等。如果我使用eager则会消耗时间案例2,因为不需要子数据。

如果我错了,请让我纠正,并告诉我一些急切/懒惰加载可能会有所帮助的情况。

1 个答案:

答案 0 :(得分:2)

我将通过一个例子来说明这一点。情景是这样的;

你是一个有很多玩具的孩子的父母。但是当前的问题是每当你打电话给他时(我们假设你有一个男孩),他也带着他所有的玩具来找你。现在这是一个问题,因为你不希望他一直带着他的玩具。

因此,作为理性的父母,你要向前走,并将孩子的玩具定义为LAZY。现在每当你打电话给他时,他就会在没有玩具的情况下来找你。

但你面临另一个问题。在家庭旅行的时候,你希望他带上他的玩具,因为孩子会对旅行感到厌倦。但由于你严格对孩子的玩具实施了LAZY,你无法让他带上玩具。这就是EAGER提取的用武之地。