时间:2021-07-01 10:21:17 帮助过:5人阅读
一个用户量在600万级别的网站,一个用户一天最多可能产生30条积分增加,比如+1,+2,+5.也可以产生若干条积分支出,比如-50,-100。
有什么好的方案可以储存用户的这些变动明细?mysql似乎不是一个好的方案,因为数据量实在太大了。
我给题主算算,假定所有用户都是活跃的,而且全都每天有30条积分增加,那么每秒的请求数计算如下:
600w * 30 = 18000w
18000w / 86400秒 = 2083条/秒
据我所知,就这点请求量,MySQL
完全扛得下来,但你必须对用户ID做索引。
事实上线上肯定不可能有这么多请求量的,600w用户级别的网站,里面活跃用户不会太多,也不可能每个用户每天都有30条增加,这里的量会比这里预估的少很多(估计少一半都不止)。
所以建议题主先仔细分析数据,不要拍脑袋,搞premature optimization
。
如果题主希望了解 MySQL
的性能,这里有个官方页面供参考:https://dev.mysql.com/tech-resources/articles/mysql-5.6.html
楼主可以考虑用redis来存储用户积分 然后每天对积分进行统计 然后存入MySQL
部分取决于DBA团队精通哪些工具,存储类的应用一坦出问题,要能快速恢复。如果团队主要用mysql那先还是要考滤用mysql。