sql优化典型案例-查询在同一个分组下的用户

本文通过《mysql性能调优与架构设计》书中案例,探讨如何优化SQL查询。需求是获取tgroup_id=1的用户id、昵称并按入群时间降序排列,展示前20个用户。方案对比显示,先用LIMIT优化JOIN操作能显著提升查询效率。
摘要由CSDN通过智能技术生成

在我看这本书时《mysql性能调优与架构设计》,作者简朝阳,其中提到了一个典型案例,我简化如下:

tuser用户表,只存一个昵称字段,如下图所示

 

群组表,记录了哪些用户,加入了哪些群组,以及入群的时间,结构如下

 

对这两张表,我填充了些数据。tuser表和有130万条数据,tuser_tgroup表有137万条数据。

现在有个简单的需求是:查询出tgroup_id=1的用户id、昵称。按入群时间倒序排列,只取前20个用户。

很容易想到两种不同写法的sql:

方案一:

 

方案二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值