【发布时间】:2019-10-09 17:37:29
【问题描述】:
MySQL innodb's document中说在默认事务隔离级别“repeatable-read”下,MySQL在处理“update”和“delete”语句时会发出next-key lock。
我很困惑为什么它不会使用记录锁而不是下一个键锁,因为下一个键锁的优点是它可以避免“幻读”,但在隔离级别“可重复读取”中是允许的。
【问题讨论】:
标签: mysql
MySQL innodb's document中说在默认事务隔离级别“repeatable-read”下,MySQL在处理“update”和“delete”语句时会发出next-key lock。
我很困惑为什么它不会使用记录锁而不是下一个键锁,因为下一个键锁的优点是它可以避免“幻读”,但在隔离级别“可重复读取”中是允许的。
【问题讨论】:
标签: mysql
从您链接的页面
InnoDB 不记得确切的 WHERE 条件,但只知道哪些索引范围是 扫描。锁通常是下一键锁,也阻止插入“间隙” 就在记录之前。
因此,next-key lock 也会阻止插入到所选范围内,而记录锁不会。
【讨论】: