在MySQL innodb's document中,在默认事务隔离级别“repeatable-read”中,MySQL会在处理“update”和“delete”语句时发出下一键锁定。
我很困惑为什么它不会使用记录锁而不是下一键锁,因为下一键锁的优点是它可以避免“幻读”,但在隔离级别允许“可重复读取”。
答案 0 :(得分:0)
从您关联的页面
InnoDB不记得确切的WHERE条件,但只知道哪个索引范围 扫描。锁通常是下键锁,也阻止插入“间隙” 在记录之前。
因此,下一键锁定也会阻止插入所选范围内的记录锁定不会。