このページは機械翻訳したものです。
server_locks テーブルの構造はcluster_locks テーブルと似ており、後者のテーブルにある情報のサブセットを提供しますが、これはそれが存在する SQL ノード (MySQL サーバー) に固有のものです。 (cluster_locks テーブルには、クラスタ内のすべてのロックに関する情報が表示されます。) より正確には、server_locks には、現在のmysqld インスタンスに属するスレッドによってリクエストされたロックに関する情報が含まれ、server_operations へのコンパニオンテーブルとして機能します。 これは、ロックパターンを特定の MySQL ユーザーセッション、クエリーまたはユースケースと相関させる場合に役立ちます。
server_locks テーブルには、次のカラムがあります:
mysql_connection_idMySQL 接続 ID
node_idレポートノードの ID
block_instanceレポート LDM インスタンスの ID
tableidこの行を含むテーブルの ID
fragmentidロックされた行を含むフラグメントの ID
rowidロックされた行の ID
transidトランザクション ID
modeロックリクエストモード
stateロック状態
detailこれが行ロックキューで最初にロックを保持しているかどうか
op操作タイプ
duration_millisロックの待機または保持にかかったミリ秒
lock_numロックオブジェクトの ID
waiting_forこの ID のロックを待機中
メモ
mysql_connection_id カラムには、SHOW PROCESSLIST に示されている MySQL 接続またはスレッド ID が表示されます。
block_instance は、カーネルブロックのインスタンスを指します。 この番号は、ブロック名とともに使用して、threadblocks テーブル内の特定のインスタンスを検索できます。
tableid は、NDB によってテーブルに割り当てられます。ndb_show_tables の出力と同様に、他のndbinfo テーブルのこのテーブルにも同じ ID が使用されます。
transid カラムに表示されるトランザクション ID は、NDB API によって生成された、現在のロックを要求または保持しているトランザクションの識別子です。
mode カラムには、常にS (共有ロック) またはX (排他ロック) のいずれかのロックモードが表示されます。 トランザクションが特定の行に対して排他ロックを持っている場合、その行に対する他のすべてのロックは同じトランザクション ID を持ちます。
state カラムにはロック状態が表示されます。 その値は、常にH (保持) またはW (待機) のいずれかです。 待機中のロックリクエストは、別のトランザクションによって保持されているロックを待機します。
detail カラムは、このロックが、影響を受ける行ロックキューで最初に保持しているロックかどうかを示します。この場合、このカラムには* (アスタリスク文字) が含まれます。それ以外の場合、このカラムは空です。 この情報は、ロックリクエストのリスト内の一意のエントリを識別するのに役立ちます。
op カラムには、ロックをリクエストしている操作のタイプが表示されます。 これは常に、READ,INSERT,UPDATE,DELETE,SCAN またはREFRESH のいずれかの値です。
duration_millis カラムには、このロックリクエストがロックを待機または保持しているミリ秒数が表示されます。 待機中のリクエストに対してロックが付与されると、これは 0 にリセットされます。
ロック ID (lockid カラム) は、このノードおよびブロックインスタンスに対して一意です。
lock_state カラムの値がW の場合、このロックは付与を待機しており、waiting_for カラムには、このリクエストが待機しているロックオブジェクトのロック ID が表示されます。 それ以外の場合、waiting_for は空です。waiting_for は、(node_id,block_instance,tableid,fragmentid およびrowid で識別される) 同じ行のロックのみを参照できます。