作者:手机用户2502913717 | 来源:互联网 | 2023-06-19 19:57
篇首语:本文由编程笔记#小编为大家整理,主要介绍了MySQL锁的分类及算法相关的知识,希望对你有一定的参考价值。 mysql中锁包含表级锁和行级锁两个大类。表级锁是意向锁,有IX,IS,一般在行级锁之
篇首语:本文由编程笔记#小编为大家整理,主要介绍了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的作用,是为了阻止多个事务将记录插入到同一个范围内,从而导致幻影读。