触发了慢日志告警应该怎么办

这么个场景:

       业务场景:要统计所有门店不同类型的商品的半年销量,可能用于用户侧的展示或者商户侧的展示

前提:1、两个表:一个订单表、一个订单商品表(假设主子表之间1:8的比例、时间跨度1年);  2、闲时统计;3、所有查询条件都能走索引(这种时间范围内的索引基本会失效的);

        一般做法(不用思考的大部分人采用的做法):一条sql统计半年的所有门店的所有商品的销量;

这种做法有问题吗?一般情况没有问题;主要看数据量,放在两千万内的数据量(假设2万订单)都没问题(有可能会触发慢日志告警、慢点也没有关系 毕竟闲时执行也不影响正常的业务嘛);

再加大数据量,到达将近1亿这个数量(主表扩大到5倍),估计GG了吧;

        

        思考一下问题:

        1、这种统计类型的业务数据是否需要绝对的准确,是否需要剔除退款的数据;(业务需求)

        2、能否增量统计,比如按天统计,将每天统计的数据累加起来,这样每次统计时只需要统计1天的数据量;

        3、假如要求剔除掉退款的绝对精确的数据、且已目前的人员的时间、精力和技术暂时不能做到增量统计,这种情况如何处理?难道就一个sql搞到死吗?

        解决方案:

        1、如果能容忍统计数据中包含退款数据(不要求绝对精确),增量统计,就一条sql,然后主日统计累加;

        2、如果要求绝对精确,不能增量(做不到增量统计),还是那个sql,分批次统计处理,一次执行半个月或者1个月的数据,一共执行6次或者12次;

        3、相对于总数据量或者入参时间,一次查询尽量缩小范围,查询尽量少的数据,可以分批次查询;

        

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值