我需要实现一个赋值,该赋值需要同时使用mysql和nosql。我已经实现了mysql表。然而,我对nosql的架构不是很确定。
服务器需要根据经验输出每天、前天(昨天)、一周和所有时间的最成功的100人。
mysql表有两个表:user和score。
user表包含以下字段:user_id(BIGINT)和full_name(BIGINT)
score表包含以下字段:user_id(BIGINT)、level(INT)、total_exp(BIGINT)、today_exp(BIGINT)、weekly_exp(BIGINT)
为了获得更好的性能,我还应该使用非sql解决方案。但是,我对no-sql的体系结构不太确定。
我目前正在考虑创建mongodb表:ranking_all、ranking_today、ranking_week、ranking_yesterday,它们的索引从0到99。
每当活跃用户玩游戏并获得相应的经验时,我都会更新mongodb表。
然而,有一些点我不是很确定。在这个系统中,如果活跃用户基数增加,mysql和mongodb表的整体更新成本也会增加。
那么,就性能而言,整体架构是否良好?
有什么想法可以改变/改进设计吗?
发布于 2013-04-09 06:09:57
我很好奇为什么你一定要用NoSQL?
为什么不直接将排名存储在MySQL中呢?无需在您的软件堆栈中引入新的依赖项/新系统。
您的描述似乎不需要NoSQL数据库的任何优点。这听起来就像是对一些排名进行预处理,然后将它们写在某个地方。我会直接给MySQL写信。
https://stackoverflow.com/questions/15884569
复制相似问题