【问题标题】:Design a Mysql Data for a maximum of performance设计一个 Mysql 数据以获得最大的性能
【发布时间】:2017-01-30 11:15:19
【问题描述】:

大家好,感谢您的帮助

每个玩家可以扮演多个角色。对于每个角色,他都有特定的统计数据(杀戮数、死亡数、胜率、玩过的游戏数等)。我有一张桌子“球员”,里面有所有球员。我想根据其中一个参数(例如胜率)按角色对玩家进行排名。这个排名每小时都会刷新一次,所以我的首要任务是更新速度。 我的开发人员建议我创建一个表格,其中每一行代表这对夫妇(玩家、角色),然后会有与统计数据一样多的字段。 我只是担心这样一张桌子的未来表现,因为我们的基地目前有 10K 玩家,每个玩家大约 100 个字符:100 万行。

但在未来,我预计数据库中将有大约 100 万玩家,这使其成为 1 亿行。就速度而言,它是最佳解决方案吗? 我考虑在 PLAYERS 表中使用一个额外的单个字段,该字段将包含所有统计数据(“赢率:50%;玩过的游戏数:845 等)。数据库的大小将小 100 倍,但过程按字符排序意味着每次都搜索一个 Json 字段,这可能需要更长的时间。

你们怎么看? 非常感谢您的帮助

【问题讨论】:

  • 我们不是免费的咨询服务
  • 好吧,伙计,我是一名学生,我对游戏充满热情,我想建立一个网站。对不起,如果我问的太多了

标签: mysql sql database database-design


【解决方案1】:

当你拥有 100 万玩家时,按照你的开发者所说的去做,如果这是一个问题,你将有钱改变它......也许不会。

在 MySQL 中使用 Json 并不是使用 MySQL 的更好方法,而且您每次都必须更新此 json...https://www.sitepoint.com/use-json-data-fields-mysql-databases/ 也许您可以使用 MongoDB 来完成 JSON 解决方案。

但是您可以在桌面播放器中使用您的观点,在其上添加统计字段并计算胜利、失败...如果您不需要在角色级别上,则在玩家级别而不是在角色级别...

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 2011-09-17
    • 2013-09-11
    • 2022-01-23
    • 2011-09-15
    • 2015-01-05
    • 2011-01-30
    • 1970-01-01
    相关资源
    最近更新 更多