Rechercher dans le manuel MySQL
22.5.10.33 The ndbinfo server_locks Table
The server_locks
table is similar in
structure to the cluster_locks
table, and
provides a subset of the information found in the latter table,
but which is specific to the SQL node (MySQL server) where it
resides. (The cluster_locks
table provides
information about all locks in the cluster.) More precisely,
server_locks
contains information about locks
requested by threads belonging to the current
mysqld instance, and serves as a companion
table to server_operations
.
This may be useful for correlating locking patterns with
specific MySQL user sessions, queries, or use cases.
The following table provides information about the columns in
the server_locks
table. For each column, the
table shows the name, data type, and a brief description.
Additional information can be found in the notes following the
table.
Table 22.409 Columns of the server_locks table
Column Name | Type | Description |
---|---|---|
mysql_connection_id |
integer | MySQL connection ID |
node_id |
integer | ID of reporting node |
block_instance |
integer | ID of reporting LDM instance |
tableid |
integer | ID of table containing this row |
fragmentid |
integer | ID of fragment containing locked row |
rowid |
integer | ID of locked row |
transid |
integer | Transaction ID |
mode |
string | Lock request mode |
state |
string | Lock state |
detail |
string | Whether this is first holding lock in row lock queue |
op |
string | Operation type |
duration_millis |
integer | Milliseconds spent waiting or holding lock |
lock_num |
integer | ID of lock object |
waiting_for |
integer | Waiting for lock with this ID |
The mysql_connection_id
column shows the
MySQL connection or thread ID as shown by
SHOW PROCESSLIST
.
block_instance
refers to an instance of a
kernel block. Together with the block name, this number can be
used to look up a given instance in the
threadblocks
table.
The tableid
is assigned to the table by
NDB
; the same ID is used for this table in
other ndbinfo
tables, as well as in the
output of ndb_show_tables.
The transaction ID shown in the transid
column is the identifier generated by the NDB API for the
transaction requesting or holding the current lock.
The mode
column shows the lock mode, which is
always one of S
(shared lock) or
X
(exclusive lock). If a transaction has an
exclusive lock on a given row, all other locks on that row have
the same transaction ID.
The state
column shows the lock state. Its
value is always one of H
(holding) or
W
(waiting). A waiting lock request waits for
a lock held by a different transaction.
The detail
column indicates whether this lock
is the first holding lock in the affected row's lock queue,
in which case it contains a *
(asterisk
character); otherwise, this column is empty. This information
can be used to help identify the unique entries in a list of
lock requests.
The op
column shows the type of operation
requesting the lock. This is always one of the values
READ
, INSERT
,
UPDATE
, DELETE
,
SCAN
, or REFRESH
.
The duration_millis
column shows the number
of milliseconds for which this lock request has been waiting or
holding the lock. This is reset to 0 when a lock is granted for
a waiting request.
The lock ID (lockid
column) is unique to this
node and block instance.
If the lock_state
column's value is
W
, this lock is waiting to be granted, and
the waiting_for
column shows the lock ID of
the lock object this request is waiting for. Otherwise,
waiting_for
is empty.
waiting_for
can refer only to locks on the
same row (as identified by node_id
,
block_instance
, tableid
,
fragmentid
, and rowid
).
Document created the 26/06/2006, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/mysql-rf-mysql-cluster-ndbinfo-server-locks.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.