一、Next-Key Lock的加锁逻辑
这是在可重复读的间隔级别下,才会有间隙锁。
Next-Key Lock:是行锁+间隙锁的结合。
1.1 5条理论
Next-Key:间隙+下一个行记录。
1.2 示例数据表
1.3 规则1:等值查询间隙锁
1.
注意:
- 是左开右闭的区间;
- 是主键索引
2.示例
MySQL的默认的隔离性的级别是:可重复读。
(1)10-20是间隙,是锁上的
- id为11的行记录,是没有的值的,因为是间隙。即10-20的间隙,已经被锁上了。别的事务,凡是插入这个区间值得,都会卡住。
(2)值20是没加锁的。
1.4 规则2:非唯一索引等值锁
MySQL的默认的隔离性的级别是:可重复读。Repeatable Read
1.5 规则3:主键索引范围锁
1.6 规则4:非唯一索引范围锁
1.7 规则5:非索引字段查询
二、小结
本质:让所有可能出现幻读的地方,都加上锁。包括间隙。
Comments | NOTHING