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.