[英]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.