按天分类统计的优化

统计一月中,每天的数量的sql优化

原始版本,按照查询当月每天的统计量

select DATE_FORMAT(alarm_time, '%d') as `key`, COUNT(*) as `value`
        from `alarm`
        WHERE is_deleted = 0
          and DATE_FORMAT(alarm_time
                  , '%Y%m') = DATE_FORMAT(CURDATE()
                  , '%Y%m')
        GROUP BY `key````

性能:一坨屎在这里插入图片描述
优化:在数据表中添加年、月、日的列,在这三列上添加索引

ALTER table alarm add INDEX idx_ymd (`year`,`month`,`day`)

explain 分析

EXPLAIN select day as `key`, COUNT(*) as `value`
        from `alarm`
        WHERE is_deleted = 0
          and `year` = 2022 and `month` = 3
        GROUP BY `key`

在这里插入图片描述

有了明显改进,牺牲空间换了效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值