mybatis的延迟加载真的会提高效率吗

延迟加载的本质就是先执行一条简单的sql,按需再去执行另一条sql,
可是,假如查询订单、用户信息,按照延时加载的来弄,就是先查出订单的信息,当getUsers()时再按订单里面的用户id去查用户信息,但是这样子不还是要去数据库查询2次吗,
个人认为,效率上并没有提高啊,而且比不延迟加载还多了一次数据库访问的次数。

------上面是我个人的理解,不知道是不是我理解错了,希望各位大神能帮帮我!

2个回答

如果 不做延时加载是不是就得写一个连接查询SQL,如果数据量大的话,连接查询是很费时的。SQL优化准则就有一条是尽量少用连接。
另外如果你的id字段做了索引,延时加载效率还是很高的、

的确,如果真的需要使用到关联数据,即使延迟加载,还是会查询两次的,只是两次查询的时机不相同而已。
这种关联关系,有些时候,我们使用关联对象和主对象使用的时机不同,所以需要考虑延迟加载。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐