25.6.17.54 Таблица ndbinfo server_locks
Таблица server_locks похожа по структуре на таблицу cluster_locks и предоставляет подмножество информации, содержащейся в последней таблице, но которая относится к узлу SQL (сервер MySQL), на котором она находится. (Таблица cluster_locks предоставляет информацию обо всех блокировках в кластере.) Более точно, server_locks содержит информацию о блокировках, запрошенных потоками, принадлежащими текущему экземпляру mysqld, и служит таблицей-компаньоном к server_operations. Это может быть полезно для сопоставления шаблонов блокировок со специфическими сессиями MySQL-пользователей, запросами или сценариями использования.
Таблица server_locks содержит следующие столбцы:
-
mysql_connection_idИдентификатор подключения MySQL
-
node_idИдентификатор узла, отправляющего отчет
-
block_instanceИдентификатор экземпляра LDM, отправляющего отчет
-
tableidИдентификатор таблицы, содержащей эту строку
-
fragmentidИдентификатор фрагмента, содержащего заблокированную строку
-
rowidИдентификатор заблокированной строки
-
transidИдентификатор транзакции
-
modeРежим запроса блокировки
-
stateСостояние блокировки
-
detailЯвляется ли это первой удерживаемой блокировкой в очереди блокировок строк
-
opТип операции
-
duration_millisМиллисекунды, потраченные на ожидание или удержание блокировки
-
lock_numИдентификатор объекта блокировки
-
waiting_forОжидание блокировки с этим идентификатором
Примечания
Столбец mysql_connection_id показывает идентификатор подключения или потока MySQL, как показано в SHOW PROCESSLIST.
block_instance относится к экземпляру ядра блока. Вместе с именем блока это число можно использовать для поиска данного экземпляра в таблице threadblocks.
Идентификатор tableid назначается таблице NDB; тот же самый идентификатор используется для этой таблицы в других таблицах ndbinfo, а также в выводе команды ndb_show_tables.
Идентификатор транзакции, отображаемый в столбце transid, — это идентификатор, сгенерированный API NDB для транзакции, запрашивающей или удерживающей текущую блокировку.
Столбец mode показывает режим блокировки, который всегда является одним из S (совместная блокировка) или X (исключительная блокировка). Если транзакция имеет исключительную блокировку на данной строке, все другие блокировки на этой строке имеют тот же самый идентификатор транзакции.
Столбец state показывает состояние блокировки. Его значение всегда равно одному из H (удержание) или W (ожидание). Запрос ожидания блокировки ждет блокировку, удерживаемую другой транзакцией.
Столбец detail указывает, является ли эта блокировка первой удерживаемой блокировкой в очереди блокировок строки, в этом случае он содержит * (звездочку); в противном случае этот столбец пуст. Эта информация может помочь идентифицировать уникальные записи в списке запросов блокировок.
Столбец op показывает тип операции, запрашивающей блокировку. Это всегда одно из значений READ, INSERT, UPDATE, DELETE, SCAN или REFRESH.
Столбец duration_millis показывает количество миллисекунд, в течение которых этот запрос блокировки ожидал или удерживал блокировку. Он сбрасывается до 0, когда запрос ожидания получает блокировку.
Идентификатор блокировки (столбец lockid) уникален для этого узла и экземпляра блока.
Если значение столбца lock_state равно W, эта блокировка ожидает предоставления, и столбец waiting_for показывает идентификатор объекта блокировки, которого ожидает этот запрос. В противном случае waiting_for пуст. waiting_for может ссылаться только на блокировки в той же самой строке (как определено node_id, block_instance, tableid, fragmentid и rowid).
© 2025 Oracle
Licensed under the GPLv2 License.