首頁 >後端開發 >php教程 >很多数据量的用户积分变动明细有什么好的存储方案?

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

WBOY
WBOY原創
2016-07-06 13:52:111424瀏覽

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

回复内容:

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

我给题主算算,假定所有用户都是活跃的,而且全都每天有30条积分增加,那么每秒的请求数计算如下:

<code>600w * 30 = 18000w
18000w / 86400秒 = 2083条/秒</code>

据我所知,就这点请求量,MySQL完全扛得下来,但你必须对用户ID做索引。

事实上线上肯定不可能有这么多请求量的,600w用户级别的网站,里面活跃用户不会太多,也不可能每个用户每天都有30条增加,这里的量会比这里预估的少很多(估计少一半都不止)。

所以建议题主先仔细分析数据,不要拍脑袋,搞premature optimization

如果题主希望了解 MySQL 的性能,这里有个官方页面供参考:https://dev.mysql.com/tech-resources/articles/mysql-5.6.html

楼主可以考虑用redis来存储用户积分 然后每天对积分进行统计 然后存入MySQL

部分取决于DBA团队精通哪些工具,存储类的应用一坦出问题,要能快速恢复。如果团队主要用mysql那先还是要考滤用mysql。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn