Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


25.6.17.7 NDB Cluster 锁表

cluster_locks 表提供了当前锁请求持有和等待锁的信息,用于 NDB 集群中的 NDB 表,并且是cluster_operations 表的伴侣表。从 cluster_locks 表中获取的信息可能有助于调查停滞和死锁。

cluster_locks 表包含以下列:

  • node_id

    报告节点的 ID

  • block_instance

    报告 LDM 实例的 ID

  • tableid

    包含该行的表 ID

  • fragmentid

    包含锁定的行 fragment 的 ID

  • rowid

    锁定的行 ID

  • transid

    事务 ID

  • mode

    锁请求模式

  • state

    锁状态

  • detail

    是否是该行锁队列中的第一个持有锁

  • op

    操作类型

  • duration_millis

    等待或持有锁的毫秒数

  • lock_num

    锁对象的 ID

  • waiting_for

    等待锁定ID

表ID(tableid 列)是内部分配的,同样用于其他 ndbinfo 表。它也在 ndb_show_tables 的输出中显示。

事务ID(transid 列)是 NDB API 为请求或持有当前锁定的事务生成的标识符。

mode 列显示锁定模式;这总是其中之一:S(表示共享锁)或 X(独占锁)。如果事务在给定的行上持有独占锁,则该行上的所有其他锁都具有相同的事务ID。

state 列显示锁定状态。其值总是其中之一:H(保持)或 W(等待)。等待锁定的请求等待由不同事务持有的锁。

detail 列包含一个星号(*)时,这意味着该锁是受影响行的锁定队列中的第一个保持锁;否则,该列为空。这项信息可以用来帮助识别锁定的唯一条目列表。

op 列显示请求锁定的操作类型。总是其中之一:READINSERTUPDATEDELETESCANREFRESH

duration_millis 列显示了这个锁请求等待或持有锁的毫秒数。锁被授予时,这个值将重置为 0。

锁 ID(lockid 列)是唯一的,仅对该节点和块实例有效。

锁状态在 lock_ state 列中显示;如果这个值为 W,则锁正在等待被授予,并且 waiting_for 列显示了该请求等待的锁对象的锁 ID。否则,waiting_for 列为空。waiting_for 只能引用同一行上的锁,根据 node_idblock_instancetableidfragmentidrowid 来标识该行。