mysql并发: what happens if a locked table is accessed?

标签 mysql concurrency myisam

问题很简单,但我找不到准确的答案: 在 myisam 数据库中,如果一个 php 文件锁定了一个表(使用原子操作,比如 INSERT)并且另一个 php 文件试图访问同一个表(读取或写入),会发生什么情况?

现在,虽然很明显第二个 session 将无法访问该表,但到底发生了什么?它会返回某种错误吗?它是否在队列中等待直到它能够访问它?

最佳答案

第二个连接将等待锁释放。

使用 MyISAM 任何写入(插入/更新/删除)都会锁定表,

但是对于 INNODB 表类型,原子操作只会锁定受影响的行

关于mysql并发: what happens if a locked table is accessed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9785887/

相关文章:

mysql - 如何仅针对共享相似前缀的表将存储引擎从 MyISAM 更改为 innoDB?

mysql - 同时使用 MyIsam 和 Innodb

mysql - 使用 myisam 将激活 key 存储在单独的表中

mysql - 先按 null 排序,再按其他变量排序

javascript - 关联查询中如何指定外键

java - 编译时检查或 java.util.ConcurrentModificationException

java - 在 ScheduledThreadPoolExecutor 中重写通用方法时出现问题

sql - 为并发事务中执行的 INSERT 获取不同的行集

mysql - SQL 根据任何类(class)的唯一标记上的 Student_id 对行进行分组

mysql - 一行匹配所有