当前位置:Gxlcms > PHP教程 > 很多数据量的用户积分变动明细有什么好的存储方案?

很多数据量的用户积分变动明细有什么好的存储方案?

时间:2021-07-01 10:21:17 帮助过:5人阅读

一个用户量在600万级别的网站,一个用户一天最多可能产生30条积分增加,比如+1,+2,+5.也可以产生若干条积分支出,比如-50,-100。
有什么好的方案可以储存用户的这些变动明细?mysql似乎不是一个好的方案,因为数据量实在太大了。

回复内容:

一个用户量在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。

人气教程排行