【发布时间】:2012-03-20 11:27:52
【问题描述】:
这个问题很简单,但我找不到准确的答案: 在 myisam 数据库中,如果一个 php 文件锁定了一个表(使用原子操作,比如 INSERT)而另一个 php 文件尝试访问同一个表(读取或写入)会发生什么?
现在,虽然很明显第二个会话将无法访问该表,但究竟发生了什么?它会返回某种错误吗?它是否在队列中等待直到能够访问它?
【问题讨论】:
标签: mysql concurrency myisam
这个问题很简单,但我找不到准确的答案: 在 myisam 数据库中,如果一个 php 文件锁定了一个表(使用原子操作,比如 INSERT)而另一个 php 文件尝试访问同一个表(读取或写入)会发生什么?
现在,虽然很明显第二个会话将无法访问该表,但究竟发生了什么?它会返回某种错误吗?它是否在队列中等待直到能够访问它?
【问题讨论】:
标签: mysql concurrency myisam
第二个连接将等待锁释放。
使用 MyISAM 任何写入(插入/更新/删除)都会锁定表,
但是对于 INNODB 表类型,原子操作只会锁定受影响的行
【讨论】: