mysql间隙锁怎么解锁 mysql间隙锁与mvcc( 三 )


意向锁就是指未来的某一个时刻事务可能要加共享锁或者排它锁,提前声明一个意向,分为两种:
意向共享锁(Intention Shared Lock) IS
事务有意向对表中的某些行加共享锁(S锁)
意向排它锁(Intention Exclusive Lock)IX
事务有意向对表中的某些行加排他锁(X锁)
记录锁(Record Locks)
官方原文
SELECT c1 FROM t WHERE c1 = 10 FOR UPDATE; 这一行则是使用了记录锁 , 不允许其他事务进行增,删,改
但是SELECT c1 FROM t WHERE c1 = 10; 是没有锁的 , 走的是快照读,上文已经阐明过了
记录锁本身不是锁定记录数据本身而是锁定索引记录,如果要锁的列没有索引,则会进行全表记录加锁
间隙锁(Gap Locks)
官方原文
比如SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR UPDATE ;
插入 c1 为 15 的记录会被锁定不可执行
这种默认存在于可重复读的事务隔离级别中的锁,锁定被圈定的范围不允许 insert,防止不可重复读 , 上文说了我们的事务隔离级别都是读已提交,默认会产生不可重复读的问题
【mysql间隙锁怎么解锁 mysql间隙锁与mvcc】mysql间隙锁怎么解锁的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql间隙锁与mvcc、mysql间隙锁怎么解锁的信息别忘了在本站进行查找喔 。

推荐阅读