繁体   English   中英

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

[英]How to UPDATE the same mysql row from multiple scripts at the same time?

我正在派生一些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;");

他告诉我他尝试了其他方法,但是一段时间之后,除了该代码外,所有其他操作都使服务器超载。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM