14.16.2 InnoDB INFORMATION_SCHEMA Справочная информация о транзакциях и блокировках
Три 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.