Spec-Zone.ru › MySQL 5.7

14.16.2 InnoDB INFORMATION_SCHEMA Справочная информация о транзакциях и блокировках

  • 14.16.2.1 Использование информации о транзакциях и блокировках InnoDB
  • 14.16.2.2 Информация о блокировках и ожидании блокировок InnoDB
  • 14.16.2.3 Сохранение и согласованность информации о транзакциях и блокировках InnoDB

Три InnoDB INFORMATION_SCHEMA таблицы позволяют отслеживать транзакции и диагностировать потенциальные проблемы с блокировками:

  • INNODB_TRX: Предоставляет информацию обо всех транзакциях, выполняемых в настоящее время внутри InnoDB, включая состояние транзакции (например, выполняется ли она или ожидает блокировки), время начала транзакции и выполняемый SQL-запрос.

  • INNODB_LOCKS: Каждая транзакция в InnoDB, ожидающая освобождения блокировки другой транзакцией (INNODB_TRX.TRX_STATE блокируется LOCK WAIT) блокируется ровно одним запросом блокировки. Этот запрос блокировки относится к строковой или табличной блокировке, удерживаемой другой транзакцией в несовместимом режиме. Блокирующая блокировка всегда удерживается в режиме, несовместимом с режимом запрошенной блокировки (чтение против записи, совместная против эксклюзивной). Блокированная транзакция не может продолжить работу до тех пор, пока другая транзакция не выполнится или не откатится, тем самым освободив запрошенную блокировку. Для каждой заблокированной транзакции INNODB_LOCKS содержит одну строку, описывающую каждую запрошенную транзакцией блокировку, и для которой она ожидает. INNODB_LOCKS также содержит одну строку для каждой блокировки, которая блокирует другую транзакцию, независимо от состояния транзакции, которая удерживает блокировку (INNODB_TRX.TRX_STATE находится в RUNNING, LOCK WAIT, ROLLING BACK или COMMITTING).

  • INNODB_LOCK_WAITS: Эта таблица указывает, какие транзакции ожидают определенной блокировки или для какой блокировки ожидает определенная транзакция. Эта таблица содержит одну или несколько строк для каждой заблокированной транзакции, указывающие запрошенную блокировку и любые блокировки, которые блокируют этот запрос. Значение REQUESTED_LOCK_ID относится к запрошенной блокировке транзакции, а значение BLOCKING_LOCK_ID относится к блокировке (удерживаемой другой транзакцией), которая препятствует продолжению первой транзакции. Для любой заблокированной транзакции все строки в INNODB_LOCK_WAITS имеют одинаковое значение для REQUESTED_LOCK_ID и различные значения для BLOCKING_LOCK_ID.

Дополнительную информацию о перечисленных таблицах см. в разделе 24.4.28, «Таблица INFORMATION_SCHEMA INNODB_TRX», разделе 24.4.14, «Таблица INFORMATION_SCHEMA INNODB_LOCKS» и разделе 24.4.15, «Таблица INFORMATION_SCHEMA INNODB_LOCK_WAITS».

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

Spec-Zone.ru

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