mysql 锁

2019-02-24  本文已影响0人  七海的游风

1.1

排他锁X
共享锁S

image.png

意向排他锁
意向共享锁


image.png

一致性非锁读操作
MVCC 会把访问的row读缓存起来。read commit和repeatable read
read commit:总是读取最新的版本。所以不可重复读。
repeatable read:读取事务开始的版本,所以值总是一样的,事务未提交不会读取到其他事务提交的修改。
这两个级别读取都不会对row加锁。

image.png

select for update 加X锁
select lock in share mode 加S锁
row加锁之后,一致性非锁读还是可以读取的

锁的算法

Record Lock:单个行记录上加锁
Gap Lock:间隙锁,锁定一个范围,但不包含记录本身
Next-key Lock:Record Lock+Gap Lock 锁定 一个 范围, 并且 锁定 记录 本身。

如果 InnoDB 存储 引擎 表 建立 的 时候 没有 设置 任何 一个 索引, 这时 InnoDB 存储 引擎 会使 用 隐式 的 主 键 来 进行 锁定。

repeatable read模式下用的Next-key Lock

锁的问题

隔离级别
read uncommit
read commit
repeatable read
可串行化

上一篇 下一篇

猜你喜欢

热点阅读