关于是否有必要分批查询

发布于 2022-09-04 00:37:22 字数 360 浏览 18 评论 0

遗留代码中有这么一个定时任务, 先一次性查询出所有第二天要过期的优惠券, 然后逐个短信通知用户

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

谁的年少不轻狂 2022-09-11 00:37:22

不好光从返回数据量来判断,要视乎SQL的执行效率而定。

如果数据库和服务器扛得住并且压力不大,那就没有必要修改目前的代码。

月竹挽风 2022-09-11 00:37:22

有 102 万条数据是指查出来 102 万条优惠券第二天要过期还是所有优惠券的总数呢?
建议还是分批,如果为了快速上线跑通业务可以这样粗暴的做。但是终究不是正确的姿势,万一脚本跑的时候跟别的任务一起把服务器资源耗尽了呢?

清风挽心 2022-09-11 00:37:22

哥,如果要分批查询,是按照什么条件分批查询啊

别念他 2022-09-11 00:37:22

性能优化是因人而异的,如果主机性能支持,干什么都可以。
如果是低性能的主机,百万级虽说不算太大,但是如果分页查询的话性能提升效果很可观。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文