InnoDB是一个支持行锁的存储引擎,它有三种行锁的算法:

  1. Record Lock:行锁,单个行记录上的锁。
  2. Gap Lock:间隙锁,锁定一个范围,但不包括记录本身。GAP锁的目的,是为了防止幻读、防止间隙内有新数据插入、防止已存在的数据更新为间隙内的数据。
  3. Next-Key Lock:1+2,锁定一个范围,并且锁定记录本身。对于行的查询,都是采用该方法,主要目的是解决幻读的问题。InnoDB默认加锁方式是next-key 锁。

这三种锁都是排它锁(X锁)。

要详细了解间隙锁可以参考这篇文章:https://www.cnblogs.com/crazylqy/p/7821481.html

######################

05-11 22:19