结论(mysql版本8.0.29) 操作的字段建有唯一索引: 记录锁对应记录存在时,为行锁;不存在时,为间隙锁; 加锁范围两端值均存在记录时,仅锁住范围内间隙;某端值不存在或者都不存在时,取端值所在间隙加锁; 操作的字段仅有非唯一索引: 记录锁对应记录存在时,为临键锁;不存在时,为间隙锁; 加锁范围两端值存在与否都取其所在间隙加锁; 注: mysql 版本的不同,在以上的处理上有所差异;但是相同点在于均区分是否建有唯一索引 记录锁(Record Locks) A record lock is a lock on an index record. 作用:阻止其他事务插入/删除/更新该记录 使