21.6.15.33 Таблица 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).
Таблица server_locks была добавлена в NDB 7.5.3.
© 2025 Oracle
Licensed under the GPLv2 License.