的server_locks
表的结构与cluster_locks
表,并提供在后一个表中找到的信息的一个子集,但它特定于它所在的SQL节点(MySQL服务器)。(cluster_locks
表提供了集群中所有锁的信息。)更准确地说,server_locks
包含关于当前线程请求的锁的信息mysqld实例,并作为一个辅助表server_operations
.这对于将锁定模式与特定的MySQL用户会话、查询或用例关联起来可能很有用。
的server_locks
表包含以下列:
mysql_connection_id
MySQL连接ID
node_id
上报节点ID
block_instance
上报LDM实例ID
tableid
包含该行的表ID
fragmentid
包含锁定行的片段ID
rowid
锁定行ID
transid
事务ID
模式
锁请求模式
状态
锁状态
细节
是否第一次在行锁队列中持有锁
人事处
操作类型
duration_millis
等待或持有锁所花费的毫秒数
lock_num
锁定对象ID
waiting_for
等待锁定此ID
笔记
的mysql_connection_id
列显示MySQL连接或线程ID显示PROCESSLIST
.
block_instance
引用内核块的一个实例。与块名称一起,可以使用该编号在threadblocks
表格
的tableid
是由?分配到该表的NDB
;在其他表中使用相同的IDndbinfo
表,以及在输出ndb_show_tables.
控件中显示的事务IDtransid
列是由NDB API为请求或持有当前锁的事务生成的标识符。
的模式
列显示锁定模式,它总是为之一年代
(共享锁)或X
(互斥型锁)。如果事务在给定行上具有排他锁,那么该行上的所有其他锁都具有相同的事务ID。
的状态
列显示锁定状态。它的值总是H
(控股)或W
(等待)。等待锁请求等待由不同事务持有的锁。
的细节
列指示此锁是否是受影响行的锁队列中的第一个持有锁,在这种情况下,它包含*
(星号字符);否则,此列为空。此信息可用于帮助识别锁请求列表中的唯一条目。
的人事处
列显示请求锁的操作类型。这总是其中一个值读
,插入
,更新
,删除
,扫描
,或刷新
.
的duration_millis
列显示此锁请求等待或持有锁的毫秒数。当为等待的请求授予锁时,该值将重置为0。
锁ID (lockid
列)是此节点和块实例唯一的。
如果lock_state
列的值为W
,此锁等待被授予,而waiting_for
列显示此请求正在等待的锁对象的锁ID。否则,waiting_for
是空的。waiting_for
只能引用同一行上的锁(由node_id
,block_instance
,tableid
,fragmentid
,rowid
).