如何在事务更新期间锁定索引?

时间:2014-09-27 12:58:20

标签: mysql sql transactions indexing b-tree

我对InnoDB中的锁定感到困惑 我知道它锁定在行级别,但据我所知它也锁定了索引。 但指数究竟是如何锁定的呢? 例如。对于聚集索引:是否保存行的叶子或该叶子的所有祖先。达到哪个级别?

1 个答案:

答案 0 :(得分:0)

(概念性)记录级锁实际上是对索引记录的(物理)锁定。

Reference(强调我的):

  

InnoDB有几种类型的记录级锁,包括记录锁,间隙锁和下一键锁。 (...)

     
      
  • 记录锁定:这是索引记录上的
  •   
  • 差距锁定:这是对索引记录
  • 之间差距的锁定   
  • 下一键锁定:这是记录锁定索引记录的组合,以及差距锁定在索引记录之前的
  •   

因此,关于行级锁定的说法实际上是指索引锁。

我从未见过有关实现细节的低级信息,源代码中的血腥细节很多,恐怕......