>  기사  >  백엔드 개발  >  很多数据量的用户积分变动明细有什么好的存储方案?

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

WBOY
WBOY원래의
2016-07-06 13:52:111403검색

一个用户量在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으로 문의하세요.