【发布时间】:2015-12-09 00:27:18
【问题描述】:
我想同时多次运行这个 php 脚本。
$db = new mysqli('localhost', 'me', 'pw', 'test');
$time = time();
$sql = " INSERT INTO test ( `test_created` ) VALUES( ". $time .") ";
$result = $db->query($sql);
我这样做是因为我想复制一个场景,其中许多用户在完全相同的时间(最多纳秒)提交数据库条目,这就是我所说的“并发”插入。
我尝试通过指定执行的小时和分钟来使用我的共享主机提供商的虚拟 cron 调度程序。然后我制作了五个相同的文件,包含上述代码。
但是,当我查看表条目时,插入的时间戳并不相同。这是因为mysql无法处理并发插入操作吗?如果 mysql 可以处理“并发插入”,这是测试并发插入操作的正确方法吗?如果没有,我应该如何在有或没有cron的php环境中进行测试?
【问题讨论】:
-
我相信 MYSQL 通过排队处理并发写访问,因此序列化要在单个资源上完成的所有更新。根据您使用的数据库引擎,资源可以是整个表或表的页面(子部分)
标签: php mysql concurrency cron