【问题标题】:why use lazy/eager loading database level为什么使用延迟/急切加载数据库级别
【发布时间】:2014-12-02 12:20:49
【问题描述】:

我目前正在阅读有关急切与延迟加载的内容。我很困惑,并将其与加载与空载进行比较。

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

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

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

【问题讨论】:

    标签: database hibernate lazy-loading eager-loading


    【解决方案1】:

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

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

    因此,作为理性父母,您可以直接将孩子的玩具定义为 LAZY。现在,无论何时你打电话给他,他都会不带玩具地来找你。

    但是您面临另一个问题。到了家庭旅行的时候,你希望他带上他的玩具,否则孩子会厌倦旅行。但是由于您对孩子的玩具严格执行 LAZY,因此您无法要求他携带玩具。这就是 EAGER fetching 发挥作用的地方。

    【讨论】:

    • 我很清楚这一切,我的问题是如何处理这种情况?如果我谈论休眠并编写一个单独的获取孩子的调用,那么它应该是懒惰还是急切,因为两者都很好情况,但对另一个不利,正如我在我的问题中解释的那样,或者只是我应该编写两个不同的休眠调用。
    • [link]dinukaroshan.blogspot.in/2012/08/…我转发给你这个链接可能对你有帮助
    • 如果我启用延迟加载,那么在家庭旅行的情况下,将有两个单独的数据库调用,一个用于父数据,另一个用于子数据,而在这种情况下,如果我可以获取所有数据会更好曾经,这是我的观点,所以我认为我们不应该使用惰性/渴望,应该为两个不同的案例编写两个单独的数据库调用。
    • 是的,您可以编写两个单独的数据库调用,这不是问题。
    • 会比在单个db调用中使用lazy/eager更好。对吧?
    猜你喜欢
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多