Mysql 什么类型的数据库将用于保存网站和游戏服务器之间的数据?

Mysql 什么类型的数据库将用于保存网站和游戏服务器之间的数据?,mysql,database,Mysql,Database,我正在制作一个在线游戏,在那里我将托管一个游戏服务器。玩家将登录到我的游戏服务器。然后他们将被带到一个大厅,在那里他们可以选择一个游戏加入。我会记录胜负和其他一些统计数据 我的要求如下: 在游戏中的任何时候,一个玩家都应该能够点击另一个 播放并获取他们最新的统计数据 一个玩家也应该能够进入我的网站,并得到相同的 统计数字。(理想情况下,立即更新,但不如 游戏中) 我还将有一个领导委员会,将产生的数据在 网站 我的问题是:对于这种情况,通常会使用什么类型的解决方案 我永远不会丢失数据,这一点至

我正在制作一个在线游戏,在那里我将托管一个游戏服务器。玩家将登录到我的游戏服务器。然后他们将被带到一个大厅,在那里他们可以选择一个游戏加入。我会记录胜负和其他一些统计数据

我的要求如下:

  • 在游戏中的任何时候,一个玩家都应该能够点击另一个 播放并获取他们最新的统计数据
  • 一个玩家也应该能够进入我的网站,并得到相同的 统计数字。(理想情况下,立即更新,但不如 游戏中)
  • 我还将有一个领导委员会,将产生的数据在 网站
我的问题是:对于这种情况,通常会使用什么类型的解决方案

我永远不会丢失数据,这一点至关重要。使用网站数据库让我担心的一件事是数据丢失

我也不确定网站数据库和游戏服务器之间的交互将如何工作。mySQL有能力做这种事情吗?我对使用网站数据库的另一个担忧是我每月会消耗多少带宽。我慷慨地估计,我将有1000人在线在任何给定的时间。一场比赛大约持续20分钟

这些情况通常是如何解决的?我已经找遍了所有地方,但我还没有找到一个明确的答案来回答我的担忧


谢谢

我会根据您的要求推荐一些东西。您的问题非常开放,因此给出的答案非常笼统:

  • 数据库可以在写入硬盘时存储数据,并且是事务性的(这意味着它们可以在web服务器崩溃后生存)
  • 可以使用多种备份工具中的任意一种备份数据库,例如:
  • 对于最新的统计数据,您可能应该从缓存中提取活动游戏玩家的信息(否则,您可能会发现,当您的大多数数据不会更改时,您正在冲击数据库(即,可能大多数玩家可能处于脱机状态,他们的数据将保持静态,但可能希望查看)
  • 调查您想要什么样的数据库。NOSQL或SQL。如果不评估每种数据库的优点,这里没有明显的选择
  • 研究N层或多层设计
  • 考虑一些类似云的基础设施,如appfabric、azure(还有其他linux)等。有许多云服务可以提供高可扩展性。这可能是前面几点的捷径

  • 如果你的游戏统计数据足够重要的话,我也建议你考虑安全性。你可以看看OWASP前10个安全漏洞需要开发者去防御。如果你的游戏状态被欺骗了,你可以忽略这个评论。特别是看看SQL注入攻击。直接与数据库交互,并且只能从静态服务器ip修改数据库?用户可以通过文本框输入信息与数据库交互。如果我在文本框中输入正确的sql,则可以(取决于大多数ppl的设置方式)直接转到数据库。数据库在哪里并不重要。最终,您可以从数据库中获取数据以进行显示/更新。我可以使用站点自己的基础设施执行我想要的任何sql(除非您采取措施防止sql注入)。事实上这是一件非常可怕的事情,我相信新闻上说它曾被用于攻击索尼,索尼在攻击中丢失了人们的信用卡详细信息。@Dessus如果我不允许使用“sql”字符串怎么办要在文本框中键入?通常可以使用参数化查询。例如,将UI数据输入sql参数。如果从文本框中删除sql关键字,则这是一种黑名单方法,您可能会错过引入sql的某些关键字。使用安全性,您真的需要白名单方法。例如,只有有效的请求只能是有效的。如果您参数化sql请求,您可以允许在文本框中输入位置,而不存在安全风险。请参阅此处: