delete 的加锁方式
-
在非唯一索引的情况下,删除一条存在的记录是有gap锁,锁住记录本身和记录两边的gap
-
在唯一索引和主键的情况下删除一条存在的记录,因为都是唯一值,进行删除的时候,是不会有gap存在
-
非唯一索引,唯一索引和主键在删除一条不存在的记录,均会在这个区间加gap锁
-
通过非唯一索引和唯一索引去删除一条标记为删除的记录的时候,都会请求该记录的行锁,同时锁住记录之前的gap
-
RC 情况下是没有gap锁的,除了遇到唯一键冲突的情况,如插入唯一键冲突。
delete 的加锁方式
在非唯一索引的情况下,删除一条存在的记录是有gap锁,锁住记录本身和记录两边的gap
在唯一索引和主键的情况下删除一条存在的记录,因为都是唯一值,进行删除的时候,是不会有gap存在
非唯一索引,唯一索引和主键在删除一条不存在的记录,均会在这个区间加gap锁
通过非唯一索引和唯一索引去删除一条标记为删除的记录的时候,都会请求该记录的行锁,同时锁住记录之前的gap
RC 情况下是没有gap锁的,除了遇到唯一键冲突的情况,如插入唯一键冲突。