关于INNODB锁定混乱(Confusion regarding INNODB locking)

2019-10-19 23:14发布

当我在一个InnoDB表运行“select * from表”,并表被锁定含蓄? 这是否意味着在MySQL的需要返回结果集的时候,我不能发出对表的更新语句?

从我所了解,直到结果集是从服务器返回的整个表将被锁定在共享模式。 只有这样的更新命令来执行。

Answer 1:

InnoDB使用一个称为多版本并发控制 。

在共享模式下锁定是不需要的,因为MVCC将保留早期版本的行为您的SELECT语句可以在需要时阅读。

因此,答案是“不”,运行SELECT语句将不需要锁定任何行,同时更新。 也就是说,除非它是一个特殊的SELECT LIKE语句SELECT .. FOR UPDATE



文章来源: Confusion regarding INNODB locking