Spec-Zone.ru › MySQL 8.4

17.20.5 Обработка ошибок 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-инструкцию. Блокировки не освобождаются при откате одной SQL-инструкции.

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

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

Spec-Zone.ru

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