2-14 Innodb行级锁

行级锁比表级锁 能支持更高的并发,
mysql服务器不知道行级锁,是由逻辑引擎实现的,
所以不是所有的逻辑引擎都有行级锁,MyISAM就没有,

2-14 Innodb行级锁_第1张图片
注意 这都是行锁.png

锁的定义是这样,但是实际上并不是这么简单


连接1png

连接1开始事务,修改,加写锁,按理说加了写锁,其他连接就不能读,也不能写了

但是到另一个链接,发现还是可以查询的,查询到的是之前的数据,没被修改的数据(undo log 中的版本)


2-14 Innodb行级锁_第2张图片
连接2.png

锁的粒度

就是加锁的范围大小,比如行页表,粒度越小,并发程度越高,
表级锁 mysql默认的锁(服务层实现) 开销小 并发性低 ,update时会锁表

连接1

连接2

连接2没有返回结果,被阻塞了

你可能感兴趣的:(2-14 Innodb行级锁)