考虑mysql中的以下模式: id int not null primary key auto_increment,如果发生重复键错误,则在重复索引记录上设置共享锁.如果有多个会话试图插入同一行(如果另一个会话已经具有独占锁),则共享锁的这种使用会导致死锁。我想,事务A运行"delete“语句时,它已经获得了记录"abc”的X锁。当&quo
最近我在MySQL5.7文档中读到了InnoDB锁。我搞混了Next-Key Lock和Gap Lock。在文档中,下一个键锁定记录和它之前的间隙,而间隙锁锁定唯一的间隙?values (2,2,2,2),(6,6,6,6),(7,7,7,7);语句1使用唯一索引查找记录不存在,它使用间隙锁,语句2:select * from r where k = 6 for update;
语句2使用非唯一索引查找已存在的记录,