关于innodb加锁问题

来源:3-11 锁模块之MyISAM与InooDB关于锁方面的区别

蜜蜂仔

2019-04-04

为什么innodb没加了读锁前,可以在其他事务中update这一行。而加了读锁后,就不能update了?
这老师不是说sql语句中不显式加lock in share mode, 就是默认读锁吗?
还是说innodb默认就是mvcc行级锁?加了lock in share mode 就变成普通的读锁,所以不能update?

写回答

1回答

翔仔

2019-04-05

如果是当前读,即使用lock in share mode,那么由于读锁不能跟写锁共存,也就是加了读锁之后就不能上写锁了,所以update就会被阻塞(update默认加写锁)。innodb默认情况下(不改变隔离级别'REPEATABLE-READ'),如果没有显示声明lock in share mode,默认不加读锁,而是使用MVCC(非阻塞读,不上锁)

0
1
蜜蜂仔
非常感谢!
2019-04-07
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8442 学习 · 1872 问题

查看课程