【问题标题】:Why MySQL innodb use next-key lock rather than record lock?为什么 MySQL innodb 使用 next-key 锁而不是记录锁?
【发布时间】:2019-10-09 17:37:29
【问题描述】:

MySQL innodb's document中说在默认事务隔离级别“repeatable-read”下,MySQL在处理“update”和“delete”语句时会发出next-key lock。

我很困惑为什么它不会使用记录锁而不是下一个键锁,因为下一个键锁的优点是它可以避免“幻读”,但在隔离级别“可重复读取”中是允许的。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    从您链接的页面

    InnoDB 不记得确切的 WHERE 条件,但只知道哪些索引范围是 扫描。锁通常是下一键锁,也阻止插入“间隙” 就在记录之前。

    因此,next-key lock 也会阻止插入到所选范围内,而记录锁不会。

    【讨论】:

      猜你喜欢
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多