关于是否有必要分批查询
遗留代码中有这么一个定时任务, 先一次性查询出所有第二天要过期的优惠券, 然后逐个短信通知用户
select user_id,sum(coupon_price),count(*) from user_coupon where end_date = date_add(current_date, interval 1 day) and status = 'NOT_USED' group by user_id;
但是在线上实际一查发现有102万多条的数据,并且该定时任务一直在正常运行。
所以现在觉得很困惑,还有必要分批查询吗? 连一百多万的数据都能hold住, 假如只有几万或几十万的数据返回 是否还有必要分批查询再处理呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不好光从返回数据量来判断,要视乎SQL的执行效率而定。
如果数据库和服务器扛得住并且压力不大,那就没有必要修改目前的代码。
有 102 万条数据是指查出来 102 万条优惠券第二天要过期还是所有优惠券的总数呢?
建议还是分批,如果为了快速上线跑通业务可以这样粗暴的做。但是终究不是正确的姿势,万一脚本跑的时候跟别的任务一起把服务器资源耗尽了呢?
哥,如果要分批查询,是按照什么条件分批查询啊
性能优化是因人而异的,如果主机性能支持,干什么都可以。
如果是低性能的主机,百万级虽说不算太大,但是如果分页查询的话性能提升效果很可观。