sponsored links

间隙锁

【数据库】—— Mysql实现事务隔离级别的方式 — LBCC/锁

January 8
【数据库】—— Mysql实现事务隔离级别的方式 — LBCC/锁
前言 这次咱们来分析一波事务隔离级别的其中一种实现方式,锁 涉及到的知识点 锁究竟锁住的是什么: 共享锁.排它锁.自增锁 临键锁.间隙锁.记录锁 正文 锁 锁的类型 从粒度上划分,可以分为行锁和表锁(基于innodb引擎) 从类型上划分,可以分为共享锁.排他锁.意向共享锁.意向排它锁.自增锁 共享锁 又称读锁,简称S锁 共享锁允许多个事务对于同一数据可以共享同一把锁,能访问到数据,但是只能读不能修改 加锁释放锁方式 select * form student where id=1 LOCK IN

Mysql innodb 间隙锁

October 10
Mysql innodb 间隙锁
前段时间系统老是出现insert死锁,很是纠结.经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围.间隙锁的主要作用是为了防止出现幻读,但是它会把锁定范围扩大,有时候也会给我们带来麻烦,我们就遇到了. 在数据库参数中, 控制间隙锁的参数是:innodb_locks_unsafe_for_binlog, 这个参数默认值是OFF, 也就是启用间隙锁, 他是一个bool值, 当值为true时表示disable间隙锁.那为了防止间隙锁

MySQL InnoDB锁机制(二)

December 14
MySQL InnoDB锁机制(二)
上一篇文章我们提到MySQL InnoDB对数据行的锁定类型一共有四种:共享锁(读锁,S锁).排他锁(写锁,X锁).意向共享锁(IS锁)和意向排他锁(IX锁),今天我们要讨论的是MySQL InnoDB对数据行的锁定方式. MySQL InnoDB支持三种行锁定方式: 行锁(Record Lock):锁直接加在索引记录上面. 间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间. Next-Key Lock:行锁与间隙锁组