0

我正在尝试制作一个允许100-200人操作的小型在线游戏(就像一个聊天工具,但主要是点击用户终端上的按钮)。

我有用户终端 UI,它与我的数据库(我的服务器上的 MySQL,一个免费服务器)进行通信。目前,我可以在我的 UI 上进行操作,我的应用程序可以正确地将信息发送到我的服务器并将数据保存到我在服务器上的帐户中。

我想知道如果两百人同时操作,这个应用程序是否会工作?我无法测试它,因为我没有这个人群来帮助我。有没有人有这方面的经验?如果我需要我的服务器根据所有用户的数据进行计算,会发生什么?我是否需要添加队列之类的东西来根据接收时间按顺序处理信息?

提前致谢。

4

1 回答 1

0

MySQL 和其他 SQL 数据库具有防止数据损坏的系统,称为锁。根据您的应用程序尝试执行的操作,锁可能会影响单行或整个表。

假设您的应用程序是一系列开/关开关,每个用户只能看到他们自己的一组开关。因此,每个用户都应该对决定他们的开关是打开还是关闭的记录具有唯一的 WRITE (INSERT) 访问权限。这很好,用户不会互相妨碍。

但是,如果您还不断地从整个数据库中读取(选择),您可能会发现这可能会延迟用户的 WRITE 指令。

此外,如果您有多个实体写入表中的相同记录,请确保您了解事务。简短的版本是:如果您读取数据,然后对该数据进行计算/决策/操作并写入新数据,您应该使用事务来确保您首先读取的数据不会改变在处理命令时。这实际上是您正在考虑创建的队列,所以不,不要自己创建。

于 2013-09-24T06:09:30.813 回答