2014-09-27 52 views
2

我對InnoDB中的鎖定感到困惑。
我知道它鎖定在行級別,但據我瞭解,它也鎖定索引。 但是索引究竟鎖定了多少?
例如對於聚集索引:是保持行鎖定的葉或葉的所有祖先。到哪個級別?如何在事務更新期間鎖定索引?

+0

你問出於好奇,還是你面臨的一個實際問題是導致這個問題? – RandomSeed 2014-09-29 12:18:10

+0

@RandomSeed:我沒有實際的問題。但我有興趣瞭解這一點 – Cratylus 2014-11-30 12:12:26

回答

0

(概念性)記錄級鎖實際上是索引記錄上的(物理)鎖。

Reference(重點煤礦):

InnoDB的有幾種類型的記錄級鎖,包括記錄鎖,鎖的差距,和next-key鎖定。 (...)

  • 記錄鎖定:這是鎖定的索引記錄
  • 間隙鎖:這是索引記錄
  • 下一頁鍵鎖之間的間隙鎖:這是一個記錄鎖定在索引記錄和之前在間隙的間隙鎖的組合指數記錄

因此無論是關於行級鎖實際上是指索引鎖。

我從來沒有看到有關的實施細則更低級別的信息,血淋淋的細節絕殺的源代碼,我怕......