24.4.14 Таблица INFORMATION_SCHEMA INNODB_LOCKS
Таблица INNODB_LOCKS предоставляет информацию о каждом блокировании, которое запрашивает, но ещё не приобрело транзакция InnoDB, и о каждом блокировании, которое держит транзакция и которое блокирует другую транзакцию.
Данная таблица устарела начиная с MySQL 5.7.14 и удалена в MySQL 8.0.
Таблица INNODB_LOCKS содержит следующие столбцы:
-
LOCK_IDУникальный идентификатор блокировки, внутренний для
InnoDB. Рассматривайте его как непрозрачную строку. ХотяLOCK_IDв настоящее время содержитTRX_ID, формат данных вLOCK_IDможет быть изменён в любое время. Не разрабатывайте приложения, анализирующие значениеLOCK_ID. -
LOCK_TRX_IDИдентификатор транзакции, которая держит блокировку. Для получения подробностей о транзакции объедините этот столбец со столбцом
TRX_IDтаблицыINNODB_TRX. -
LOCK_MODEСпособ запроса блокировки. Разрешённые описатели режимов блокировки:
S,X,IS,IX,GAP,AUTO_INCиUNKNOWN. Описатели режимов блокировки могут использоваться в комбинации для определения конкретных режимов блокировки. Для получения информации о режимах блокировкиInnoDBсм. Раздел 14.7.1, «Блокировка InnoDB». -
LOCK_TYPEТип блокировки. Разрешённые значения:
RECORDдля блокировки на уровне строки,TABLEдля блокировки на уровне таблицы. -
LOCK_TABLEИмя таблицы, которая была заблокирована или содержит заблокированные записи.
-
LOCK_INDEXИмя индекса, если
LOCK_TYPEявляетсяRECORD; в противном случаеNULL. -
LOCK_SPACEИдентификатор табличного пространства заблокированной записи, если
LOCK_TYPEявляетсяRECORD; в противном случаеNULL. -
LOCK_PAGEНомер страницы заблокированной записи, если
LOCK_TYPEявляетсяRECORD; в противном случаеNULL. -
LOCK_RECНомер кучи заблокированной записи в пределах страницы, если
LOCK_TYPEявляетсяRECORD; в противном случаеNULL. -
LOCK_DATAДанные, связанные с блокировкой, если таковые имеются. Значение отображается, если
LOCK_TYPEявляетсяRECORD, в противном случае значение являетсяNULL. Значения первичного ключа заблокированной записи отображаются для блокировки, наложенной на индекс первичного ключа. Значения вторичного индекса заблокированной записи отображаются для блокировки, наложенной на уникальный вторичный индекс. Значения вторичного индекса отображаются со значениями первичного ключа, если вторичный индекс не уникален. Если первичного ключа нет,LOCK_DATAпоказывает либо значения ключей выбранного уникального индекса, либо уникальныйInnoDBвнутренний идентификатор строки, в соответствии с правилами, управляющими использованиемInnoDBкластеризованного индекса (см. Раздел 14.6.2.1, «Кластеризованные и вторичные индексы»).LOCK_DATAсообщает “псевдозапись supremum” для блокировки, взятой на псевдозапись supremum. Если страница, содержащая заблокированную запись, не находится в кэше буфера, потому что она была записана на диск, пока блокировка была активна,InnoDBне загружает страницу с диска. Вместо этого,LOCK_DATAсообщаетNULL.
Пример
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS\G
*************************** 1. row ***************************
lock_id: 3723:72:3:2
lock_trx_id: 3723
lock_mode: X
lock_type: RECORD
lock_table: `mysql`.`t`
lock_index: PRIMARY
lock_space: 72
lock_page: 3
lock_rec: 2
lock_data: 1, 9
*************************** 2. row ***************************
lock_id: 3722:72:3:2
lock_trx_id: 3722
lock_mode: S
lock_type: RECORD
lock_table: `mysql`.`t`
lock_index: PRIMARY
lock_space: 72
lock_page: 3
lock_rec: 2
lock_data: 1, 9
Примечания
Используйте эту таблицу, чтобы помочь в диагностике проблем производительности, возникающих во время высокой одновременной нагрузки. Её содержимое обновляется, как описано в Раздел 14.16.2.3, «Сохранение и непротиворечивость информации о транзакциях и блокировках InnoDB».
Для запроса этой таблицы необходимо иметь право
PROCESS.Используйте таблицу
INFORMATION_SCHEMACOLUMNSили операторSHOW COLUMNSдля получения дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.Для получения информации об использовании, см. Раздел 14.16.2.1, «Использование информации о транзакциях и блокировках InnoDB».
© 2025 Oracle
Licensed under the GPLv2 License.