【发布时间】:2019-06-18 20:11:54
【问题描述】:
来自 MySQL 词汇表:
已提交阅读
当具有此隔离级别的事务执行 UPDATE ... WHERE 或 DELETE ... WHERE 操作时,其他事务可能需要等待。该事务可以执行 SELECT ... FOR UPDATE 和 LOCK IN SHARE MODE 操作无需让其他事务等待。
对吗?
UPDATE 为它扫描的每一行设置 x 锁,然后释放那些与 WHERE 部分不匹配的锁。剩余的行保持 x 锁直到事务结束。据我所知,SELECT-FOR UPDATE 会发生完全相同的事情。那么 UPDATE 怎么会阻塞其他事务而 SELECT-FOR UPDATE 不会呢?
【问题讨论】:
标签: mysql select transactions sql-update read-committed