Python 缓存每个用户的计算结果-为每个用户指定一个表有意义吗?
我们正在草拟一个系统将如何工作。问题在于,我们有一组项目,每个项目都有一个计算值。比如说,你喜欢nba的球员,你对某些球员表现出了偏好 例如:Python 缓存每个用户的计算结果-为每个用户指定一个表有意义吗?,python,mysql,database-design,Python,Mysql,Database Design,我们正在草拟一个系统将如何工作。问题在于,我们有一组项目,每个项目都有一个计算值。比如说,你喜欢nba的球员,你对某些球员表现出了偏好 例如: 玩过的游戏数 反弹 得分 协助 每场比赛的分钟数 其他朋友喜欢的玩家 被交易的可能性-你经常想要被交易的球员 nba大约有500名球员。从性能的角度来看,查询是一种成本禁止的行为——加入其他人的偏好等等。。。。我们一直在考虑采取另一种方法。一种方法是NoSQL,其中每个用户都会编写每个玩家的文档。老实说,这似乎是太多的未知数,因为我没有任何经验。另一种方
thx我现在第一次使用mongodb,我发现它非常棒,它让您可以像面向对象的类结构一样表示文档。您可以很容易地为每个用户创建一个文档,用于存储任意数量的嵌入文档。您的播放器可以位于嵌套字典或列表中,并且您可以索引播放器名称。然后,当您请求一个用户时,没有加入。你有你所有的数据。此外,还有一个灵活的模式,因此您可以随时添加更多字段 至于每个用户的mysql表,我同意它非常混乱,可能会失控
另一种选择是,您可以查看像Redis这样的键值存储以进行缓存,因为它在内存中,速度也会很快。这有点太模糊了。如果正确避免连接和索引,即使是大型MySQL数据库也可以获得高性能。如果您的服务很成功,并且以后需要大量的性能,那么您可以对MySQL进行集群,这样它就不会成为死胡同。有很多加速查询的策略。我同意这是模糊的;将集群设置为只读是有意义的,但在执行此步骤之前,请先寻找一点备选方案。以前的一位DBA完全放弃了集群安装,从那以后我一直犹豫是否使用它;我想我的问题是,我知道有几个团体去了mongo,但后来又回来了。每个用户的mysql表确实让人觉得不雅观。也许我会做个原型看看我的感受。我喜欢它,因为它将使我具备sql的强大功能和熟悉度,并具有高度隔离的能力。我问的另一个原因是MySQL中似乎有很多我不太熟悉的工作(内存数据库或数据库)。我听说关于mongoI的消息不一,在决定使用它之前,我已经在mongo上搜索了很多,但实际上我没有听到太多不一致的反应。我听到的是很多关于从mysql心态接近mongo以及如何组织的问题。但一般来说,有经验的人最终会给出很好的答案。我对mongo的主要看法是它的伸缩性非常好,也非常容易。我一直想用Redis,但现在只是随便试用了一下。