问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

不建议使用join的原因

发布网友 发布时间:2022-09-18 03:37

我来回答

1个回答

热心网友 时间:2023-10-20 01:33

不推荐使用join的原因:

1.DB承担的业务压力大,能减少负担就减少。当表处于百万级别后,join导致性能下降;

2.分布式的分库分表。这种时候是不建议跨库join的。目前mysql的分布式中间件,跨库join表现不良。

3.修改表的schema,单表查询的修改比较容易,join写的sql语句要修改,不容易发现,成本比较大,当系统比较大时,不好维护。

不使用join的解决方法:

在业务层,单表查询出数据后,作为条件给下一个单表查询。也就是子查询。 会担心子查询出来的结果集太多。mysql对in的数量没有*,但是

mysql*整条sql语句的大小。通过调整参数max_allowed_packet ,可以修改一条sql的最大值。建议在业务上做好处理,*一次查询出来的结果集是能接受的。

应用层次关联的优势:

1 将查询分解后,执行单个查询可以减少锁的竞争

2 在应用层关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展

3 查询本身效率也可能会有所提升。查询id集的时候,使用IN()代替关联查询,可以让MySQL按照ID顺序进行查询,这可能比随机的关联要更高效。

4 可以减少冗余几率的查询。在应用层做关联查询,意味着对应某条记录应用只需要查询一次,而在数据库中做关联查询,则可能需要重复访问一部分数据。

5. 更进一步,这样做相当于在应用中实现了哈希关联,而不是使用MySQL的嵌套循环关联。某些场景哈希关联的效率要高很多。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男人醉女人累原歌 我大概在2009年玩的很早的一款冒险动作游戏有一关是埃及狗头人主角捡武... 提成点数怎么算公式 Huamei/华美每日粗粮粗纤维饼-适用对象 0pp01107格式化后成白屏且不能开机怎么办 五邑大学是市属还是省属 五邑大学校区有几个 窝瓜焖荷包蛋怎么做? 达科塔·芬妮简要生平 湖北自动冷库多少钱 扁嘴鱼的做法大全 扁嘴鱼怎么吃才好吃呢 牛志高的概述 牛志高的个人简介 75轻钢龙骨1.2厚双面各3层石膏板隔墙定额能套出多少钱一个平方_百度问一问 轻钢龙骨多少钱一米 谁能告诉我常州双面石膏板隔墙的价格是多少 怎样学英语简单 英语怎样学,才简单? 苹果手机怎么下载4399版本皇室战争 如何消除长假综合症 求类似弹丸论破的动漫,要求是不要太虐男女主就好 求推荐>_<类似于弹丸论破的动漫。 有没有和弹丸论破相投的动漫 或 男主有控制别人的能力的动漫 能求一下类似弹丸论破的动漫吗 红楼梦里王熙凤的结局是怎样的? 求pdf转word软件 怎么安装PDF转WORD的软件 - 信息提示 pdf转word文档的软件谁有啊! 小说《赘婿》中男主宁毅有孩子吗? ABAP 加入有10个表需要链接在一起,直接用inner join肯定是性能不好的,现在我如果分开,用两个三个表链 left join多表查询结果不对,输出的值比数据库大好几倍。带如何修改 MSSQL2005 INNER JOIN两个表,作为条件的两个字段数据类型不一样时,不同的服务器,性能表现 芝麻棒棒虾怎么做,是有 虾,肉松,黄瓜,萝卜,撒芝麻,裹海苔,还有米的那种 半自动双桶洗衣机脱水电机电容定时器怎么接线 福特发布新一代蓝智驾主动驾驶辅助系统 金秋率先海外启用 在家怎么做小猪汤圆? 软萌软萌的小猪汤圆怎么做? AJ 8 有什么样的配置 电脑主板散热维护教程 电脑组装与维护系列教程之硬盘分区 适合幼儿讲的成语故事100篇 幼儿园成语小故事 适合幼儿的成语故事 幼儿简单成语故事 对联:“假作真时真亦假,无为有处有还无 超生活小技能 纸盘的操作步骤 安徽芜湖行程卡带星吗? 在芜湖中转会带星吗