为什么不推荐多表Join?

原因

阿里的 Java 规范手册里面就有一句话:“超过三个表禁止使用 Join”。这是为什么呢?理由有如下几点🔽:
1)⭐多表 Join 操作可能导致性能问题,尤其是在处理大数据量时,Join 操作需要对参与联接的每个表进行扫描、匹配和组合,消耗大量的 CPU 和内存资源,从而导致查询时间变长。
2)⭐难以维护,影响代码阅读。复杂的 Join 查询难以阅读和维护,尤其是在多表联接中需要处理多个联接条件和筛选条件。容易出现逻辑错误,难以排查问题。
3)⭐索引设计变得复杂。为了提高多表 Join 查询的性能,需要为每个表创建合适的索引,但这也增加了索引设计和维护的复杂性。
4)⭐优化器选择最佳计划能力可能下降。数据库优化器在处理复杂的多表 Join 查询时,可能无法选择最佳的执行计划,导致性能不佳。

举个现实中的例子🌰:

想象一下,你在一个图书馆里查找某个特定主题的书籍:
1)🚀单表查询:你只需要在一本分类清晰的目录中查找书名,很快就能找到目标书籍。
2)⚡多表 Join :你需要先在多个目录中分别查找,然后将这些目录信息进行匹配和组合,找到目标书籍。这个过程不仅耗时,还容易出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值