繁体   English   中英

并发PHP和MySQL请求

[英]Concurrent PHP and MySQL request

我正在使用PHP和MySQL开发Web应用程序,因为这种情况我必须限制要在表中插入的记录数。

...
const MAX= 10
if(/*record count query*/ < $this::MAX) {
 /*insert query*/
}
...

出于测试目的,我仅通过使用来自浏览器的GET请求来触发此代码。

当我连续单击F5键(刷新)约5秒钟时,计数超过了最大值。

但是当我一一去时,计数就达到了极限。

这表明当我单击F5时,连续执行count query而同时执行insert query 我不知道如何解决此问题,有些指导对我会有所帮助。

您必须LOCK表,以便在尝试获取当前计数时没有其他进程写入数据库。 否则,您始终处于另一个进程当前插入数据的危险中。

出于性能原因,您可以将另一个表用作计数器,在执行这些操作时将其锁定。

暂无
暂无

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

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