支持行锁:读锁(S锁)、写锁(X锁)
间隙锁:(为了解决 可重复读(repeatable read)隔离级别中存在的幻读问题)
A gap lock is a lock on a gap between index records, or a lock on the gap before the first or after the last index record。
- 间隙锁在本质上是不区分共享间隙锁或互斥间隙锁
- 间隙锁本质上是用于阻止其他事务在该间隙内插入新记录,而自身事务是允许在该间隙内插入数据的。
- 可能造成死锁:
悲观锁--乐观锁:
- 悲观:每次都假定有其他事务更改数据(总有刁民要害朕!)
- 用锁机制实现。
- 适用于读多的场景
- 乐观:假定并发是小概率事件
- 适用于读多的场景
- 用版本号机制或CAS机制实现