请问大家都是怎样计算和统计每日数据变化的?
现在有需求如下:
需要通过 API
接口返回 区间日期
的每日新用户注册数据给前端,来做数据变化图标,数据格式要求如下:
[
...
// 日期 => 当日注册总人数
'20210501' => 30,
'20210502' => 33,
'20210503' => 10,
'20210504' => 0,
'20210505' => 36,
...
]
假如 日期区间
是7日内,那么数组中就有7条记录
mysql
数据表如下:
id | name | phone | created_at | updated_at |
---|---|---|---|---|
1 | 乔峰 | 5111 | 2021-05-01 12:21:33 | 2021-05-03 12:21:33 |
2 | 段誉 | 1112 | 2021-05-03 21:31:00 | 2021-05-07 12:21:33 |
3 | 虚竹 | 1234 | 2021-05-03 21:31:00 | 2021-05-07 12:21:33 |
第一次做这种需求,我第一时间能想到的处理方法只能是循环单独查询和统计区间内的每日新增的所有用户,但是如果区间是一年的话,这样做肯定会把数据库拖死。
还有一种方法是,查询区间内的所有用户,然后再使用循环来单独统计每日的所有用户,这样感觉好一些,但是感觉还是有点蠢。
不知道大家都是怎么做这种需求的呢?希望大家不吝赐教,非常感谢!
在我写 乔峰,段誉,虚竹名字的时候,耳机里随机播放的歌曲突然切到了《难念的经》好巧啊~
其实为了这点功能上redis太大材小用,如果原先就用到了还好说,本质上如果不是很精确的统计,每次统计后存入数据库,下次直接读取即可,因为当天以前的数据不大可能会变化,如果进一步精确,可以增加时间限制,每个统计数据存活指定时间,过期后重新统计存储!