2014-09-27 2 views
2

Я смущен насчет блокировки в InnoDB.
Я знаю, что он фиксируется на уровне строк, но насколько я понял, он также блокирует индекс. Но как точно зафиксирован индекс?
E.g. для кластеризованного индекса: Лист, который удерживает строку заблокированной или всех предков этого листа. До какого уровня?Как заблокирован индекс во время обновлений транзакций?

+0

Вы спрашиваете, из любопытства, или вы столкнулись фактическим вопрос, который привести к этому вопросу? – RandomSeed

+0

@RandomSeed: У меня нет реальной проблемы. Но я заинтересован в понимании этого – Cratylus

ответ

0

A (концептуальный) замок уровня записи на самом деле является (физической) блокировкой в ​​индексной записи.

Reference (курсив мой):

InnoDB имеет несколько типов замков на уровне записей, включая блокировок, щелевых замков и рядом ключей замков. (...)

  • замок Запись: Это замок на указательном записи.
  • Gap замок: Это замок на промежутке между индексных записей
  • следующего ключа: Это сочетание рекордно блокировки на указательном записи и блокировки зазора на разрыв до того, как указатель запись.

Поэтому все, что говорится о блокировке на уровне строк, фактически относится к блокировкам индекса.

Я никогда не видел информации низкоуровневой о деталях реализации, окровавленные детали Lore в исходном коде, я боюсь ...

 Смежные вопросы

  • Нет связанных вопросов^_^