问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

mysql多表关联查询效率高点还是多次单表查询效率高,为什么

提问网友 发布时间:2025-01-04 08:09
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2025-01-15 00:34
针对 MySQL 多表关联查询与多次单表查询效率的问题,分析不同情况下的效率对比与原因。

在数据规模较小,如十几万行的情况下,假设 A 和 B 两张表均无索引,且关联操作为笛卡尔积,则关联结果量可能呈爆炸式增长,达到亿级别,导致网络 I/O 成为瓶颈。此时,一次性拉取十万行结果集的效率可能远高于一次性拉取亿级别结果集的效率。在实际业务中,通常会考虑关联条件和索引使用,使得关联操作主要针对一个较小的结果集进行。采用服务层(service)进行关联操作,可以减少 RPC 调用次数,通过先查询 A 表得到小结果集,再根据此结果集拼凑 B 表查询条件,进行第二次查询,最后在服务层进行合并。这相比直接在数据库中执行关联查询,能减少一次 RPC 调用。

在业务实践中,多将计算密集型操作移至服务层,以提高单机数据库的吞吐量。数据库作为事务处理的核心,计算资源昂贵,难以水平扩展。将计算操作放入服务层,利用服务层的计算资源,数据库则专注于数据存储和事务处理。这体现了业务优先,数据库轻量化的架构设计。

业务在发展过程中,可能会涉及多数据库部署,为满足复杂业务需求,常在多个数据库间增加中间件层,以实现跨数据库的关联操作。然而,数据库分库分表后,传统 join 操作受到限制,特别是当两个表位于不同物理库时。为保证数据一致性,服务层的合并操作成为更灵活、可行的方案。在分库分表场景下,同步更新不同物理库中的两个表时,服务层能够通过扫描 A 表失败记录并检查 B 表更新状态,实现数据合并,避免使用 join 操作。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

自制果酱的保存方法 自制果酱如何保存 自制的草莓酱是热装瓶还是凉装瓶 草莓酱装入瓶中为什么瓶子倒扣放置... 熬草莓酱为什么要趁热装瓶 ...办社保,已经到社保中心做增员登记和已经到地税办缴费登记,之后是唔... 公司要办理社保网上申报,需要拿地税证书去办理,请问地税证书是税务登记... 原神菲谢尔推荐武器圣遗物 菲谢尔武器和圣遗物选择推荐 原神 原神2.8菲谢尔武器推荐排行什么样? 原神 原神菲谢尔带什么四星武器? 原神 原神菲谢尔武器圣遗物推荐什么? 《前程似锦的女孩》结局 中小学教师职称评审类型如何修改 职称评审材料纸质的最后怎么处理 中学计算机教师计算机等级要求 2024年山东450分能考上什么大学? 高考446分能进入哪个大学 2024年山东451分能考上什么大学? 山东高考448分左右能上什么大学 2024年山东444分能考上什么大学? 5S经常卡跟屏幕有关吗 坐车从新乐去来水怎么走 MySQL多表关联优化提升查询性能的关键mysql多表关联优化 苹果手机之前下得的手机铃声怎么删除.资料库里面已经没有这些 生辰八字五行取名免费 生辰八字小孩起名要根据哪些原则 按生辰八字取名字大全男孩 男孩取名宝典免费 女生穿高腰牛仔裤该怎么搭配才出彩? 女生穿高腰牛仔裤如何搭配才出彩? 高腰牛仔裤该怎么搭配才出彩? 高腰牛仔裤搭配什么上衣 高腰牛仔裤配什么鞋 女生穿高腰牛仔裤怎么搭配衣服才出彩? 女士穿高腰牛仔裤如何搭配显得高级? 高腰开衩牛仔裤如何搭配才能显得女人味十足? 月经肚子疼怎么缓解(月经肚子疼怎么缓解按摩) 计算机根据用途可分为哪几类? 计算机应用指的哪些 M30手表(M33手表) SerialDTE和SerialDCE分别用在什么样的网络连接中? 以太网接口和串行接口的区别是什么? 电视突然黑屏但有声音? 淡黄色的连衣裙搭配什么鞋子更时尚? 浅黄色的连衣裙适合搭配哪些款式的鞋子?
Top