两阶段锁定协议

InnoDB 使用两阶段锁定协议(two-phase locking protocol):在事务执行期间,随时都可以获取锁,但锁只有在提交或回滚后才会释放,并且所有的锁会同时释放。

InnoDB 支持通过特定的语句进行显式锁定,这些语句不属于 SQL 规范:

SELECT *
FROM sakila.rental
WHERE rental_id = 1 
LOCK IN SHARE MODE;

SELECT *
FROM sakila.rental
WHERE rental_id = 1
FOR UPDATE;

最后更新于