21.5.14.33 ndbinfo server_lockstable
server_locks
table 的结构类似于cluster_locks
table,并提供在后者 table 中找到的信息的子集,但特定于它所驻留的 SQL 节点(MySQL 服务器)。 (cluster_locks
table 提供了有关群集中所有锁的信息.)更准确地说,server_locks
包含了有关属于当前mysqld实例的线程所请求的锁的信息,并用作server_operations的伴随 table。这对于将锁定模式与特定的 MySQL 用户会话,查询或用例相关联可能很有用。
server_locks
table 包含以下列:
mysql_connection_id
MySQL 连接 ID
node_id
报告节点的 ID
block_instance
报告 LDM 实例的 ID
tableid
包含该行的 table 的 ID
fragmentid
包含锁定行的片段的 ID
rowid
锁定行的 ID
transid
Transaction ID
mode
锁定请求模式
state
Lock state
detail
这是否是第一个在行锁队列中持有锁
op
Operation type
duration_millis
await 或保持锁定所花费的毫秒数
lock_num
锁对象的 ID
waiting_for
await 具有此 ID 的锁定
Notes
mysql_connection_id
列显示 MySQL 连接或线程 ID,如SHOW PROCESSLIST所示。
block_instance
指内核块的实例。连同块名一起,该数字可用于在threadblockstable 中查找给定的实例。
tableid
由NDB
分配给 table;在其他ndbinfo
table 以及ndb_show_tables的输出中,此 table 使用相同的 ID。
transid
列中显示的 TransactionID 是 NDB API 为请求或持有当前锁的 Transaction 生成的标识符。
mode
列显示锁定模式,该模式始终是S
(共享锁定)或X
(独占锁定)之一。如果事务在给定行上具有排他锁,则该行上的所有其他锁都具有相同的事务 ID。
state
列显示锁定状态。它的值始终是H
(保持)或W
(await)之一。await 锁请求 await 另一个事务持有的锁。
detail
列指示此锁是否是受影响的行的锁队列中的第一个保持锁,在这种情况下,它包含*
(星号字符);否则,此列为空。此信息可用于帮助识别锁定请求列 table 中的唯一条目。
op
列显示请求锁定的操作类型。这始终是值READ
,INSERT
,UPDATE
,DELETE
,SCAN
或REFRESH
之一。
duration_millis
列显示此锁定请求已 await 或持有锁定的毫秒数。当为 await 的请求授予锁时,此位重置为 0.
锁 ID(lockid
列)对此节点和块实例唯一。
如果lock_state
列的值为W
,则 await 授予此锁,而waiting_for
列显示此请求正在 await 的锁对象的锁 ID。否则,waiting_for
为空。 waiting_for
只能引用同一行上的锁(由node_id
,block_instance
,tableid
,fragmentid
和rowid
标识)。
server_locks
table 已添加到 NDB 7.5.3 中。