mysql隔离级别
http://www.zsythink.net/archives/1233/
1、select @@tx_isolation; 默认是REPEATABLE-READ 可重复读
2、select @@innodb_locks_unsafe_for_binlog; 默认是0 开启间隙锁 1关闭间隙锁
2. 阐述了一些概念:
认识锁的算法
nnoDB存储引擎的锁的算法有三种:
-
Record lock:单个行记录上的锁
-
Gap lock:间隙锁,锁定一个范围,不包括记录本身
-
Next-key lock:record+gap 锁定一个范围,包含记录本身
Lock的精度(type)分为 行锁、表锁、意向锁
Lock的模式(mode)分为:
-
锁的类型 ——【读锁和写锁】或者【共享锁和排他锁】即 【X or S】
-
锁的范围 ——【record lock、gap lock、Next-key lock】
知识点
-
innodb对于行的查询(rr级别的当前读)使用next-key lock
-
Next-locking keying为了解决Phantom Problem幻读问题
-
当查询的索引含有唯一属性时,将next-key lock降级为record key
-
Gap锁设计的目的是为了阻止多个事务将记录插入到同一范围内,而这会导致幻读问题的产生
-
有两种方式显式关闭gap锁:(除了外键约束和唯一性检查外,其余情况仅使用record lock) A. 将事务隔离级别设置为RC B. 将参数innodb_locks_unsafe_for_binlog设置为1

浙公网安备 33010602011771号