MYSQL VERSION : 5.7.X我有一个大致的想法,读提交的隔离将主要使用共享和独占记录锁。但是,根据mysql的文档,在某些情况下,甚至读提交也必须使用间隙锁定。
阅读承诺..。对于锁定读取(选择用于更新或锁定共享模式)、UPDATE语句和DELETE语句,InnoDB只锁定索引记录,而不锁定前面的空白,从而允许在锁定的记录旁边自由插入新
这不是一个完整/正确的MySQL查询仅伪代码: from Notifications as n limitby 1状态:如果将FOR UPDATE与使用页锁或行锁的存储引擎一起使用,则查询检查的行将被写锁定,直到当前事务结束
这里是只返回一条被MySQL锁定的记录,还是它必须扫描所有记录才能找到这条记录