java开发中为什么不建议连表查询

一:单表查询更有利于后续维护

二:代码可复用性高

三:效率问题

a:数据量小的情况下,连表查询的效率还是可以的,但是如果连表比较多,数据量上去,查询是笛卡尔积方式,查询的数据量是成几何倍上升的,这种情况下连表查询也必然会建立索引,这样的话索引的建立方式就要进行设计,需要一些索引功底的,如果索引建立不合适,是有可能会拖垮数据库的。

b: 相比较而言,单表查询+代码上组装,逻辑比较清楚,维护方便,构建索引也相对很简单了,用多访问几次数据库,多几行代码换取效率上的提升,也是很可行的。

笛卡尔积:例:假设集合A=(a,b),集合B=(0,1,2),则两个集合的笛卡尔积为(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)

四:缓存利用率高

比如不常变动的数据,缓存下来,每次查询的时候就没必要再去查了,直接拿取,进行下面操作就可以了。

五:其它

a:数据库瓶颈会影响性能,一些复杂的逻辑尽量是在业务层进行,最好不要在数据库中进行

b:数据量上去后,常做分库分表操作,使用join连表查询在这种情况下表现并不友好

c:单表查询+代码上组装相当于解耦了,无论是复用还是什么,也都比较方便了

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清石小猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值