在MySQL进程列表中,它显示了几个SELECT
查询已被锁定。的锁定节目超过4000MySQL进程列表 - 锁定问题
| 24 | user | localhost | database | Query | 4725 | Locked | SELECT * FROM data
| 25 | user | localhost | database | Query | 4725 | Locked | SELECT * FROM data
| 26 | user | localhost | database | Query | 4725 | Locked | SELECT * FROM data
PHP脚本的时间已经执行过一段时间,但随后在SELECT
锁定状态成了。如何解决这个问题呢?
$SQL = "SELECT * FROM data";
$query = $db->prepare($SQL);
$query->execute();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
//Do something
sleep(2);
}
是否mySQL服务器限制SELECT查询在一次运行一次?这可以改变吗?
我正在使用MyISAM –
哦,我已经忘记了关于myisam的所有信息:( –
MyISAM锁定了整个表,当它写入并且没有读取可以完成,直到该锁被释放。在写入之前被执行,等等,但在你的情况下,它看起来好像有一个写入阻止你的读取。 –