Spec-Zone.ru › MySQL 5.7

14.22.4 Обработка ошибок InnoDB

В следующих пунктах описывается, как InnoDB обрабатывает ошибки. InnoDB иногда откатывает только оператор, который завершился ошибкой, а иногда откатывает всю транзакцию.

  • При отсутствии места на диске возникает ошибка MySQL Table is full, и InnoDB откатывает SQL-оператор.

  • Сбой транзакции заставляет InnoDB откатать всю . В этом случае повторите всю транзакцию.

    Таймаут ожидания блокировки заставляет InnoDB откатить текущий оператор (оператор, который ожидал блокировки и столкнулся с таймаутом). Чтобы откатить всю транзакцию, запустите сервер с включённым --innodb-rollback-on-timeout. Повторите оператор, если используется стандартное поведение, или всю транзакцию, если --innodb-rollback-on-timeout включён.

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

  • Ошибка дублирования ключа откатывает SQL-оператор, если вы не указали опцию IGNORE в своём операторе.

  • Ошибка row too long error откатывает SQL-оператор.

  • Другие ошибки в основном обнаруживаются слоем кода MySQL (над уровнем хранилища данных InnoDB), и они откатывают соответствующий SQL-оператор. Блокировки не освобождаются при откатe одного SQL-оператора.

Во время неявных откатов, а также во время выполнения явного SQL-оператора ROLLBACK , SHOW PROCESSLIST отображает Rolling back в столбце State для соответствующего подключения.

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

Spec-Zone.ru

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