MYSQL VERSION : 5.7.X我有一个大致的想法,读提交的隔离将主要使用共享和独占记录锁。但是,根据mysql的文档,在某些情况下,甚至读提交也必须使用间隙锁定。
阅读承诺..。对于锁定读取(选择用于更新或锁定共享模式)、UPDATE语句和DELETE语句,InnoDB只锁定索引记录,而不锁定前面的空白,从而允许在锁定的记录旁边自由插入新记录。间隙锁定只用于外键约束检查和重复键</e
考虑mysql中的以下模式: id int not null primary key auto_increment, unique key(name)表中还有一个名字叫"abc“的记录。在mysql文档中说()
如果发生重复键错误,则在重复索引记录上设置共享锁.如果有多个会话试图插入同一行(如果另一个会话已经具有独占锁),则共享锁<em
最近我在MySQL5.7文档中读到了InnoDB锁。我搞混了Next-Key Lock和Gap Lock。在文档中,下一个键锁定记录和它之前的间隙,而间隙锁锁定唯一的间隙?语句2:select * from r where k = 6 for update;
语句2使用非唯一索引查找已存在的记录,它使用下一个键锁锁定区域k B+tree from ((k=2,id=2),(k=6,id=6)]和间隙锁锁定区域k B+