MySQL锁的分类及算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL锁的分类及算法相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

以上是关于MySQL锁的分类及算法的主要内容,如果未能解决你的问题,请参考以下文章

锁--02---锁的分类1----读锁(S锁)写锁(X锁)

MySQL中innodb的行锁算法

MySQL 进阶 锁 -- MySQL锁概述MySQL锁的分类:全局锁(数据备份)表级锁(表共享读锁表独占写锁元数据锁意向锁)行级锁(行锁间隙锁临键锁)

MySQL中行锁的算法

事务隔离实现并发控制:MySQL系列之十

MySQL锁机制