mysql查询队列?

Bla*_*use 5 php mysql

我有一个多人游戏,随着越来越多的玩家被烧毁,已经开始产生一些奇怪的错误.

对于数据库/小时大约有150万个查询,我认为问题是有些查询在其他查询完成之前就已经执行了,因为之前我没有遇到任何问题,随着更多人注册,我越来越多.

我有两个主要类:"sendTurn.php"和"removePlayer.php".如果一名球员花了很长时间做出回应,他就会被踢出局.但是我猜这个问题是如果一个球员轮到他的话会发生什么,就像他被踢出去一样?

我在某处读到了查询被放入队列中,但由于每个类需要几个查询来完成它,所以有可能在例如"sendTurn.php"中途完成时(完成前1-2个查询) )另一个类"removePlayer.php"将开始执行其查询?

在这种情况下,我该怎么办?

编辑:

我在debian VPS服务器上使用apace2,使用phpmyadmin

小智 3

看起来真正的解决方案是完整的架构审查,因为这更多是一个架构问题而不是技术问题。您可以完全避免这个问题,但没有足够的信息供我使用。但是,只要敏感表的敏感进程的完整范围被访问,您就可以锁定敏感表。当很多玩家尝试达到相同的功能时,性能会受到影响,但至少它会起作用。

例如对于这样的函数

*LOCK TABLE*
Do queries
Do queries
Do queries
Do queries
*UNLOCK TABLE*
Run Code Online (Sandbox Code Playgroud)

MYSQL 示例:http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html