1、 Record lock:单个行记录上的锁
2、 Gap lock:间隙锁,锁定一个范围,不包括记录本身
3、 Next-key lock: record+gap锁定一个范围,包含记录本身
相关知识点:
1、 innodb对于行的查询使用next-key lock
2、 Next-locking keying 为了解决 Phantom Problem 幻读问题
3、 当查询的索引含有唯一属性时,将next-key lock降级为record key
4、 Gap锁设计的目的是为了阻止多个事务将记录插入到同一范围内,而这会导致幻读问题的产生
5、 有两种方式显式关闭gap锁:(除了外键约束和唯一性检查外,其余情况仅使用record lock)
A、将事务隔离级别设置为RC
B、将参数innodb_locks_unsafe_for_bin1og设置为1
Was this helpful?
0 / 0