根据,更新锁可以在需要写入的时候转换为独占锁。同时,三个锁(X、S和U)的兼容性可以参考下表。X S US ✗ ✓ ✓然而,在一些博客中提到,从MySQL 5.7开始就有一个SX锁,它实现了B-树上操作的文件并发(1977通过这些博客,我发现SX锁与update锁非常相似。例如,它们具有相同的兼容性表。
由于我找不到更多关于MySQL中SX锁的“正式”介绍
MYSQL VERSION : 5.7.X我有一个大致的想法,读提交的隔离将主要使用共享和独占记录锁。但是,根据mysql的文档,在某些情况下,甚至读提交也必须使用间隙锁定。
阅读承诺..。对于锁定读取(选择用于更新或锁定共享模式)、UPDATE语句和DELETE语句,InnoDB只锁定索引记录,而不锁定前面的空白,从而允许在锁定的记录旁边自由插入新记录。IMHO,只有记录锁就够了。有人能解释一下Gap锁定的场景吗?为什