在64位环境下,php的int占用为8个字节
20亿个数字,需要占用8*20亿*8/1024/1024/1024约等于15G的内存
很明显,大多数人的电脑,或者服务器都没有这么大的内存,那么我们该怎么才能实现这个需求呢...那好,这个问题先放一边,我们换个问题
假设网站有1亿用户,现在需要增加个签到功能,用于奖励那些活跃用户
现在需要你实现以下功能:
1:记录某个用户每年的签到情况
2:统计某一个月份没有断签的用户
3:查看某个用户的连续签到情况...这个问题看起来很简单啊,新增一个记录表,每天签到则新增一条记录,用户加个索引
直接where查询用户就行了
统计没有断签也简单啊,where 月份区间 count一下就行了
至于连续签到情况,增加个字段表示连续签到就行了...,速度快,解决了大量简单数据下的排序,判断
解决用户签到问题
在前面,我们已经通过了bitmap,解决了大数据存储排序问题,那么问题二的签到问题怎么办呢?...对比如下:
数据库直接存储:1亿用户,假设每天有3000万人签到,那么一个月,一年下来,数据将会是:30000000*365差不多是100亿的数据...