gpt4 book ai didi

Hibernate 获取策略 - 何时使用 "join"以及何时使用 "select"?

转载 作者:行者123 更新时间:2023-12-03 06:14:30 27 4
gpt4 key购买 nike

大多数 Hibernate 关联都支持“fetch”参数:

fetch="join|select"

“选择”为默认值。

如何决定哪个关联使用哪一个?

我尝试在应用程序范围内将所有内容从“select”更改为“join” - 生成的查询数量可能减少了 10 倍,但性能保持完全相同(甚至变得稍差)。

谢谢。

最佳答案

加入应该可以解决n+1问题。如果您有 10 个 parent ,每个 parent 有 10 个 child ,则 join 将需要 1 个查询,而 select 将需要 11 个查询(一个用于 parent ,一个用于每个 parent 的 child )。如果数据库与应用程序位于同一服务器上或者网络非常快,这可能不是什么大问题,但如果每个数据库调用都有延迟,那么延迟就会增加。连接方法在初始查询上效率稍低,因为您在每一行中复制父列,但只与数据库进行一次往返。

一般来说,如果我知道我需要所有 parent 的 child ,我就会选择 join。如果我只需要几个 parent 的 child ,我会使用 select。

关于Hibernate 获取策略 - 何时使用 "join"以及何时使用 "select"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617145/

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