Spec-Zone.ru › MySQL 5.7

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_SCHEMA COLUMNS или оператор SHOW COLUMNS для получения дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.

  • Для получения информации об использовании, см. Раздел 14.16.2.1, «Использование информации о транзакциях и блокировках InnoDB».

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

Spec-Zone.ru

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