千家信息网

MySQL锁的分类及算法

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,MySQL中锁包含表 、页级锁和行级锁两个大类。表页级锁是意向锁,有IX,IS,一般在行级锁之前使用;行级锁则是传统的S和X锁。这些锁的兼容特性如下:ISIXSXIS兼容兼容兼容不兼容IX兼容兼容不兼
千家信息网最后更新 2025年01月22日MySQL锁的分类及算法

MySQL中锁包含表 、页级锁和行级锁两个大类。表页级锁是意向锁,有IX,IS,一般在行级锁之前使用;行级锁则是传统的S和X锁。这些锁的兼容特性如下:

ISIXSX
IS兼容兼容兼容不兼容
IX兼容兼容不兼容不兼容
S兼容不兼容兼容不兼容
X不兼容不兼容不兼容不兼容

InnoDB存储引擎中行锁算法有3种,分别是:
* Record Lock 单个行记录上锁

  • Gap Lock 间隙锁,锁定一个范围,但不包含记录本身
  • Next-Key Lock GapLock+RecordLock

Record Lock比较容易理解,GapLock需要注意的是,它锁定的范围,既包含左间隙,也包含右间隙。Gap Lock的作用,是为了阻止多个事务将记录插入到同一个范围内,从而导致幻影读。

0