请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

repeatable read级别中,select lock in share mode,造成另外的事务无法insert操作

innoDB默认是行级锁,一个事务中select… lock in share mode,另一个事务无法insert操作,是由于第一个事务select操作没有走索引而上了表级锁,才造成另一个事务insert写锁阻塞而无法操作吗?

正在回答 回答被采纳积分+3

1回答

翔仔 2019-08-22 21:36:48

同学好,另外一个事务无法insert操作是因为它要insert的地方被gap锁锁了,并不是表级锁哈,比如你锁的是id为1的数据,而此时数据有 1 2 3 4 只有1 被select lock in share mode,那么insert 5是不会被锁的

0 回复 有任何疑惑可以回复我~
  • 请问老师,上面同学说的第一个事务select操作没有走索引而上了表级锁有问题吗?之前课程不是说InnoDB不走索引就会上表级锁吗?
    回复 有任何疑惑可以回复我~ 2020-05-25 22:42:32
  • 翔仔 回复 江宏晖 #2
    同学好,不走索引会上表锁,主要是select后面省略号如果有where并且走索引的话就是我说的情况
    回复 有任何疑惑可以回复我~ 2020-05-27 00:01:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信