Spec-Zone .ru
спецификации, руководства, описания, API

14.2.3.10. Как Справиться с Мертвыми блокировками

Этот раздел основывается на концептуальной информации о мертвых блокировках в Разделе 14.2.3.9, "Обнаружение мертвой блокировки и Откат". Это объясняет, как организовать операции базы данных, чтобы минимизировать мертвые блокировки и последующую обработку ошибок, требуемую в приложениях.

Мертвые блокировки являются классической проблемой в транзакционных базах данных, но они не опасны, если они не являются настолько частыми, что невозможно выполнить определенные транзакции вообще. Обычно, следует записать свои приложения так, чтобы они были всегда подготовлены переиздать транзакцию, если она откатывается из-за мертвой блокировки.

InnoDB использует автоматическую блокировку на уровне строки. Можно получить мертвые блокировки даже в случае транзакций, которые только вставляют или удаляют единственную строку. Это - то, потому что эти операции не являются "действительно атомарными"; они автоматически устанавливают, соединяется (возможно, несколько) индексируют записи строки, вставленной или удаленной.

Можно справиться с мертвыми блокировками и уменьшить вероятность их возникновения со следующими методами: