928 B
928 B
- 行锁
- 与表锁不能同时存在
- 表锁
- 锁定一张表
- 读写锁
- 读锁和读锁不互斥,其它情况互斥
- 意向共享锁,意向互斥锁
- 是为了解决如果要添加表锁需要检查是否有行锁的情况,可以根据意向锁判断是否存在行锁
- 意向锁和意向锁之间不会互斥
- 意向共享锁和表级别的读锁之间不互斥,其它会互斥
- 意向锁不会与任何行锁互斥
- 间隙锁
- 锁定的是两个索引之间的间隙,防止新的记录插入到该间隙中,主要是为了解决幻读的问题
- 一个事务读取某个范围的记录,另一个事务再这个范围内插入了新的记录
- 缺点
- 有一定死锁风险,性能影响,添加复杂性,锁定范围可能过大
- 临键锁
- 特殊的间隙锁,只与非唯一索引有关
- 非唯一索引列上都会存在一个临键锁,所著一段左开右闭的区间