29.12.13.2 Таблица data_lock_waits
Таблица data_lock_waits реализует многие-ко-многим отношения, показывая, какие запросы блокировки данных в таблице data_locks блокируются какими удерживаемыми блокировками данных в таблице data_locks. Удерживаемые блокировки в data_locks отображаются в data_lock_waits только в случае, если они блокируют какой-либо запрос блокировки.
Эта информация позволяет понять зависимости блокировок данных между сеансами. Таблица показывает не только то, какую блокировку ожидает сеанс или транзакция, но и какой сеанс или транзакция в данный момент удерживает эту блокировку.
Пример информации о ожидании блокировки данных:
mysql> SELECT * FROM performance_schema.data_lock_waits\G
*************************** 1. row ***************************
ENGINE: INNODB
REQUESTING_ENGINE_LOCK_ID: 140211201964816:2:4:2:140211086465800
REQUESTING_ENGINE_TRANSACTION_ID: 1555
REQUESTING_THREAD_ID: 47
REQUESTING_EVENT_ID: 5
REQUESTING_OBJECT_INSTANCE_BEGIN: 140211086465800
BLOCKING_ENGINE_LOCK_ID: 140211201963888:2:4:2:140211086459880
BLOCKING_ENGINE_TRANSACTION_ID: 1554
BLOCKING_THREAD_ID: 46
BLOCKING_EVENT_ID: 12
BLOCKING_OBJECT_INSTANCE_BEGIN: 140211086459880
В отличие от большинства данных сбора Performance Schema, нет инструментов для управления тем, собирается ли информация о блокировке данных или системных переменных для управления размерами таблиц блокировки данных. Performance Schema собирает информацию, которая уже доступна в сервере, поэтому нет накладных расходов на память или процессор для генерации этой информации или необходимости параметров, которые управляют её сбором.
Используйте таблицу data_lock_waits, чтобы помочь диагностировать проблемы производительности, возникающие во время высокой одновременной нагрузки. Для InnoDB, см. обсуждение этой темы в Разделе 17.15.2, «Информация об операциях и блокировках транзакций InnoDB INFORMATION_SCHEMA».
Поскольку столбцы в таблице data_lock_waits похожи на столбцы в таблице data_locks, описания столбцов здесь сокращены. Для более подробных описаний столбцов см. Раздел 29.12.13.1, «Таблица data_locks».
В таблице data_lock_waits есть следующие столбцы:
-
ENGINEСУБД, запросившая блокировку.
-
REQUESTING_ENGINE_LOCK_IDИдентификатор блокировки, запрошенной СУБД. Чтобы получить подробности о блокировке, объедините этот столбец со столбцом
ENGINE_LOCK_IDтаблицыdata_locks. -
REQUESTING_ENGINE_TRANSACTION_IDВнутренний идентификатор СУБД транзакции, запросившей блокировку.
-
REQUESTING_THREAD_IDИдентификатор потока сеанса, запросившего блокировку.
-
REQUESTING_EVENT_IDСобытие Performance Schema, вызвавшее запрос блокировки в сеансе, который запросил блокировку.
-
REQUESTING_OBJECT_INSTANCE_BEGINАдрес в памяти запрошенной блокировки.
-
BLOCKING_ENGINE_LOCK_IDИдентификатор блокирующей блокировки. Чтобы получить подробности о блокировке, объедините этот столбец со столбцом
ENGINE_LOCK_IDтаблицыdata_locks. -
BLOCKING_ENGINE_TRANSACTION_IDВнутренний идентификатор СУБД транзакции, удерживающей блокирующую блокировку.
-
BLOCKING_THREAD_IDИдентификатор потока сеанса, удерживающего блокирующую блокировку.
-
BLOCKING_EVENT_IDСобытие Performance Schema, вызвавшее блокирующую блокировку в сеансе, который её удерживает.
-
BLOCKING_OBJECT_INSTANCE_BEGINАдрес в памяти блокирующей блокировки.
В таблице data_lock_waits есть следующие индексы:
Индекс по (
REQUESTING_ENGINE_LOCK_ID,ENGINE)Индекс по (
BLOCKING_ENGINE_LOCK_ID,ENGINE)Индекс по (
REQUESTING_ENGINE_TRANSACTION_ID,ENGINE)Индекс по (
BLOCKING_ENGINE_TRANSACTION_ID,ENGINE)Индекс по (
REQUESTING_THREAD_ID,REQUESTING_EVENT_ID)Индекс по (
BLOCKING_THREAD_ID,BLOCKING_EVENT_ID)
TRUNCATE TABLE не разрешено для таблицы data_lock_waits.
© 2025 Oracle
Licensed under the GPLv2 License.