InnoDB
实现标准行级锁定,
其中有两种类型的锁,共享 ( S
) 锁和独占 ( X
) 锁。
-
共享 (
S
) 锁允许持有该锁的事务读取一行。 -
独占 (
X
) 锁允许持有该锁的事务更新或删除行。
如果事务T1持有行r上的一个共享锁,那么来自不同事务T2的对行r上的一个锁的请求将被处理如下:
-
T2对S锁的请求可以立即被授予。因此,T1和T2都对r持有S锁。
-
T2对X锁的请求不能立即被授予。
如果事务T1持有行r上的排他(X)锁,那么某个不同事务T2对r上任何一种类型的锁的请求都不能立即被授予。相反,事务T2必须等待事务T1释放对行r的锁。
更多InnoDB锁机制,请移步 MySQL InnoDB锁 全攻略-CSDN博客