在线交流应用

时间:2013-09-24 05:08:29

标签: mysql sql-server livechat online-game

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

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

我想知道如果有两百人在同一时间运营,这个应用程序是否会有效?我无法测试它,因为我没有这个人帮助我。有没有人有这方面的经验?如果我需要服务器根据所有用户的数据进行计算,会发生什么?我是否需要添加类似队列的任何内容来根据接收时间处理序列中的信息?

提前致谢。

1 个答案:

答案 0 :(得分:0)

MySQL和其他SQL数据库具有防止数据被破坏的系统,称为锁。锁定可以根据您的应用尝试执行的操作影响单个行或整个表格。

假设您的应用是一系列开/关开关,每个用户只能看到自己的一组开关。因此,每个用户应该对记录进行唯一的WRITE(INSERT)访问,以确定他们的开关是打开还是关闭。这很好,用户不会互相帮助。

但是,如果你也经常从整个数据库中读取(SELECT),你可能会发现这可能会延迟用户的WRITE指令。

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