Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 缓存每个用户的计算结果-为每个用户指定一个表有意义吗?_Python_Mysql_Database Design - Fatal编程技术网

Python 缓存每个用户的计算结果-为每个用户指定一个表有意义吗?

Python 缓存每个用户的计算结果-为每个用户指定一个表有意义吗?,python,mysql,database-design,Python,Mysql,Database Design,我们正在草拟一个系统将如何工作。问题在于,我们有一组项目,每个项目都有一个计算值。比如说,你喜欢nba的球员,你对某些球员表现出了偏好 例如: 玩过的游戏数 反弹 得分 协助 每场比赛的分钟数 其他朋友喜欢的玩家 被交易的可能性-你经常想要被交易的球员 nba大约有500名球员。从性能的角度来看,查询是一种成本禁止的行为——加入其他人的偏好等等。。。。我们一直在考虑采取另一种方法。一种方法是NoSQL,其中每个用户都会编写每个玩家的文档。老实说,这似乎是太多的未知数,因为我没有任何经验。另一种方

我们正在草拟一个系统将如何工作。问题在于,我们有一组项目,每个项目都有一个计算值。比如说,你喜欢nba的球员,你对某些球员表现出了偏好

例如:

  • 玩过的游戏数
  • 反弹
  • 得分
  • 协助
  • 每场比赛的分钟数
  • 其他朋友喜欢的玩家
  • 被交易的可能性-你经常想要被交易的球员
  • nba大约有500名球员。从性能的角度来看,查询是一种成本禁止的行为——加入其他人的偏好等等。。。。我们一直在考虑采取另一种方法。一种方法是NoSQL,其中每个用户都会编写每个玩家的文档。老实说,这似乎是太多的未知数,因为我没有任何经验。另一种方法是,系统中的每个人都会得到一张专门给他们的桌子。也许每夜通过cron写出表定义,当用户登录时,执行createtable语句,然后对其进行专门的查询。对我来说这听起来也很难听(虽然可行)。我们当然也可以有一个单独的表,其中每个用户为每个玩家都有一行。不过,我不希望整个系统都脱离自连接。这似乎是离线查询,我们可以根据这些不同的参数测量1000名玩家

    还有其他我没有的想法吗?我不想要太深奥的东西——最好是MySQL和Python。将使用InnoDB,而不太关心每个数据库每个主机问题拆分表

    如果您有其他想法或真实世界体验,我们将不胜感激?我相信这个问题以前已经解决过很多次了


    thx

    我现在第一次使用mongodb,我发现它非常棒,它让您可以像面向对象的类结构一样表示文档。您可以很容易地为每个用户创建一个文档,用于存储任意数量的嵌入文档。您的播放器可以位于嵌套字典或列表中,并且您可以索引播放器名称。然后,当您请求一个用户时,没有加入。你有你所有的数据。此外,还有一个灵活的模式,因此您可以随时添加更多字段

    至于每个用户的mysql表,我同意它非常混乱,可能会失控


    另一种选择是,您可以查看像Redis这样的键值存储以进行缓存,因为它在内存中,速度也会很快。

    这有点太模糊了。如果正确避免连接和索引,即使是大型MySQL数据库也可以获得高性能。如果您的服务很成功,并且以后需要大量的性能,那么您可以对MySQL进行集群,这样它就不会成为死胡同。有很多加速查询的策略。我同意这是模糊的;将集群设置为只读是有意义的,但在执行此步骤之前,请先寻找一点备选方案。以前的一位DBA完全放弃了集群安装,从那以后我一直犹豫是否使用它;我想我的问题是,我知道有几个团体去了mongo,但后来又回来了。每个用户的mysql表确实让人觉得不雅观。也许我会做个原型看看我的感受。我喜欢它,因为它将使我具备sql的强大功能和熟悉度,并具有高度隔离的能力。我问的另一个原因是MySQL中似乎有很多我不太熟悉的工作(内存数据库或数据库)。我听说关于mongoI的消息不一,在决定使用它之前,我已经在mongo上搜索了很多,但实际上我没有听到太多不一致的反应。我听到的是很多关于从mysql心态接近mongo以及如何组织的问题。但一般来说,有经验的人最终会给出很好的答案。我对mongo的主要看法是它的伸缩性非常好,也非常容易。我一直想用Redis,但现在只是随便试用了一下。