Database 为什么使用惰性/急切加载数据库级别

Database 为什么使用惰性/急切加载数据库级别,database,hibernate,lazy-loading,eager-loading,Database,Hibernate,Lazy Loading,Eager Loading,我目前正在阅读关于快速加载和延迟加载的文章。我很困惑,把它比作负载和空载 假设我有两个UI部分。其中一个部分我想显示子数据和父数据,第二个部分我只是显示父数据。然后我应该在数据库级别编写两个不同的调用,一个是加载子数据,另一个是只加载父数据 在这种情况下,延迟/急切加载有多大帮助,因为如果我进行延迟加载,那么在第一种情况下它将消耗更多的时间,因为它将在以后进行查询,而不是使用联接等。如果我使用急切加载,那么在第二种情况下它将消耗时间,因为不需要子数据 如果我错了,请让我纠正,并告诉我一些情况下,

我目前正在阅读关于快速加载和延迟加载的文章。我很困惑,把它比作负载和空载

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

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


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

我将通过一个例子来说明这一点。情况就是这样

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

作为父母,你可以直接定义孩子的玩具是懒惰的。现在无论你什么时候打电话给他,他总是不带玩具来找你


但你面临着另一个问题。当家庭旅行的时候,你希望他带上他的玩具,否则孩子会对旅行感到厌烦。但既然你严格要求孩子的玩具懒惰,你就不能让他带玩具了。这就是急切抓取发挥作用的地方。

我很清楚这一切,我的问题是如何处理这种情况?如果我谈论hibernate并为抓取孩子写一个单独的调用,那么它应该是懒惰还是急切,因为两者在一种情况下是好的,但在另一种情况下是坏的,正如我在问题中所解释的,或者简单地说,我应该编写两个不同的hibernate调用。[link]我正在向您推荐此链接可能会对您有所帮助如果我启用延迟加载,那么在家庭旅行的情况下,将有两个单独的db调用,一个用于父数据,另一个用于子数据,而在这种情况下,如果我可以一次获取所有数据,则会更好,这是我的观点,所以我认为我们不应该使用lazy/eager,应该为两种不同的情况编写两个单独的db调用。是的,您可以编写两个seprate db调用,这不是问题。而且它比在单个db调用中使用lazy/eager要好。对吗?