next-key lock (glap lock)完全解析.

事务 acid 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

a : commit  等

c : redoLog undoLog

i : 锁

d : 磁盘

对事务而言, 锁的存在目的是为了事务的隔离性.

    当然广义上,锁的存在还是为了控制并发. 控制并发某种意义是就是控制多个线程的隔离.

 

不同的角度.

一般锁: 可重复读(对快照读,一般锁 mvcc也能防止幻读)

间隙锁: 防止幻读.(对当前读,通过间隙锁实现防止幻读)

从这个根本出发. 哪些情况会导致幻读,就需要间隙锁. 

普通的select 是不锁的.

只有 select for update 才锁,  或者 delete ,update里的where条件

1. 区间条件

2. 命中一行,且是非unique

3. 不命中一行,不管是不是unique .

 

无间隙锁:

1. 命中一行且unique

2. 读提交级别

3. 

 

一般锁:  等价性 a 锁 b, b也锁 a

特殊锁: 间隙锁.  

 

你可能感兴趣的:(next-key lock (glap lock)完全解析.)