记录锁、间隙锁、临键锁

记录锁、间隙锁、临键锁_第1张图片
记录锁锁的情况:
记录锁、间隙锁、临键锁_第2张图片

间隙锁锁的情况:
间隙锁主要阻塞的是插入,查找是不阻塞的。
记录锁、间隙锁、临键锁_第3张图片
临键锁锁的情况:
记录锁、间隙锁、临键锁_第4张图片
数据库锁的是什么?
数据引擎:Innodb
其实数据库锁的是聚集索引

聚集索引怎么来?
当有主键时,主键是聚集索引
当没有主键时,但是有唯一索引,会找第一个非空的唯一索引当成聚集索引
当没有主键,也没有唯一索引时,其内部有一个rowid来当聚集索引

没有设置索引的表:当表结构没有设置索引的时候,就会锁住全表
有设置主键索引的表:锁住指定主键的记录
有设置唯一索引的表:如果锁条件是根据唯一索引来进行锁操作,也是锁住该聚集索引对应的记录
当然了,如果其条件都不存在,则有可能锁住的是间隙锁、临键锁,也就是上面所介绍的三种锁情况

你可能感兴趣的:(记录锁、间隙锁、临键锁)