Я смущен насчет блокировки в InnoDB.
Я знаю, что он фиксируется на уровне строк, но насколько я понял, он также блокирует индекс. Но как точно зафиксирован индекс?
E.g. для кластеризованного индекса: Лист, который удерживает строку заблокированной или всех предков этого листа. До какого уровня?Как заблокирован индекс во время обновлений транзакций?
2
A
ответ
0
A (концептуальный) замок уровня записи на самом деле является (физической) блокировкой в индексной записи.
Reference (курсив мой):
InnoDB имеет несколько типов замков на уровне записей, включая блокировок, щелевых замков и рядом ключей замков. (...)
- замок Запись: Это замок на указательном записи.
- Gap замок: Это замок на промежутке между индексных записей
- следующего ключа: Это сочетание рекордно блокировки на указательном записи и блокировки зазора на разрыв до того, как указатель запись.
Поэтому все, что говорится о блокировке на уровне строк, фактически относится к блокировкам индекса.
Я никогда не видел информации низкоуровневой о деталях реализации, окровавленные детали Lore в исходном коде, я боюсь ...
Вы спрашиваете, из любопытства, или вы столкнулись фактическим вопрос, который привести к этому вопросу? – RandomSeed
@RandomSeed: У меня нет реальной проблемы. Но я заинтересован в понимании этого – Cratylus