Spec-Zone.ru › MySQL 5.7

14.7.5.2 Обнаружение тупиков

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

InnoDB учитывает блокировки таблиц, если innodb_table_locks = 1 (по умолчанию) и autocommit = 0, и слой MySQL над ним знает о блокировках на уровне строк. В противном случае, InnoDB не может обнаружить тупики, где участвует блокировка таблицы, установленная оператором MySQL LOCK TABLES или блокировка, установленная другим движком хранения, кроме InnoDB. Решите эти ситуации, установив значение системной переменной innodb_lock_wait_timeout.

Если раздел LATEST DETECTED DEADLOCK вывода монитора InnoDB содержит сообщение, гласящее: “СЛИШКОМ ГЛУБОКИЙ ИЛИ ДЛИННЫЙ ПОИСК В ГРАФЕ ОЖИДАНИЙ БЛОКИРОВКИ, МЫ ОТКАТИМ СЛЕДУЮЩУЮ ТРАНЗАКЦИЮ,” это указывает на то, что количество транзакций в списке ожидания достигло предела 200. Список ожидания, превышающий 200 транзакций, рассматривается как тупик, и транзакция, пытающаяся проверить список ожидания, откатывается. Та же ошибка может также возникнуть, если потоку блокировки необходимо просмотреть более 1 000 000 блокировок, принадлежащих транзакциям в списке ожидания.

Чтобы узнать о методах организации операций с базой данных для предотвращения тупиков, см. Раздел 14.7.5, «Тупики в InnoDB».

Отключение обнаружения тупиков

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

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/innodb-deadlock-detection.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API