间隙锁加锁规则,注意临键锁是间隙锁和行锁的总称,实际上临键锁就是行锁加间隙锁,实际上是先加间隙锁,再加行锁,这两个是分开独立的
两个原则,两个优化,一个bug
熟悉了之后就不需要了,根本
1.加锁基本单位是next-key lock
2.只有查找过程访问到的对象才会加锁
1.等值查询的时候,给唯一索引加锁退化为行锁
2.普通索引等值查询,最后一个不满足的,临键锁退化为间隙锁
1.唯一索引的范围查询会查询到第一个不满足条件的值为止
lock in share mode想要保证搜索的数据不被修改,必须避免覆盖索引,锁是加在索引上的,只有被访问到的索引才会加锁
其实读提交隔离级别在外键场景下还是有间隙锁,相对比较复杂,
读提交场景下会自动把不满足条件的行锁去掉