如何同时从多个脚本更新相同的mysql行?

时间:2010-09-11 20:44:10

标签: php mysql innodb

我正在分发一些php脚本,我需要更新一个mysql行来跟踪一些进展。我读到我应该使用InnoDB,但是我找不到任何我能理解的完整例子。一位朋友告诉我他使用这个PHP代码:

mysql_query("SET AUTOCOMMIT=0;");
mysql_query("START TRANSACTION;");
mysql_query("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;");

// UPDATE QUERY HERE

mysql_query("COMMIT;");
mysql_query("UNLOCK TABLES;");      
mysql_query("SET AUTOCOMMIT=1;");

他告诉我他尝试了其他方法,但除了代码以外的所有其他方法都会在一段时间后重载他的服务器。

有人可以告诉我这段代码是否能满足我的要求,或者有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

数据库类型无关紧要。 MySQL旨在自动对异步请求进行排队,并按照它们到达的顺序执行它们。但是,请求可能甚至不是异步的,除非你有很多它们同时运行。无论哪种方式,您都不应该遇到此问题,除非您的脚本必须按特定顺序更新行。在这种情况下,您应该使用单个脚本,以便更密切地控制更新顺序。