插入意向锁 - Insert Intention Lock
- 一种由插入操作, 在行插入之前设置的间隙锁
- 只在
Repeatable Reads下生效 - 插入意向锁之间不互斥
- 插入意向锁和排他锁之间互斥
- 这种锁表明了插入的意图, 如果多个事务插入到同一索引间隙中, 但不在间隙内的相同位置插入, 则它们不需要相互等待。
假设有索引记录的值为 4 和 7。分别尝试插入值为 5 和 6 的不同事务,在获取插入行的独占锁之前,各自用插入意向锁锁定 4 和 7 之间的间隙,但由于行不冲突,所以它们不会相互阻塞。但是如果他们的都要插入6,那么就会需要阻塞了。