MySQL 间隙锁

2020-05-25  本文已影响0人  攻城狮托马斯

间隙锁

间隙锁在MySQL中解决了幻读问题,在MySQL中通过RR也能解决幻读。

但是使用间隙锁时有两个坑需要注意一下.

栗子:

Insert into t_lock_1 values(10),(11),(13),(20),(40) // 创建三条数据

Select * from t_lock_1 where a <= 13 for update;// 间隙锁, 锁住小于13的所有数据

insert into t_lock_1 values(0)//插入0 也在锁的范围内

insert int t_lock_1 values(19) //失败,因为间隙锁会锁住比范围内的数再多加一个的数

例子2:

在同时拥有Primary Key 和 Key的情况下,也会把前面的范围锁住,然后往后锁一个数

上一篇 下一篇

猜你喜欢

热点阅读