MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
          data_locks テーブルには、保持およびリクエストされたデータロックが表示されます。 どのロック要求がどの保持ロックによってブロックされるかについては、セクション27.12.13.2「data_lock_waits テーブル」 を参照してください。 
        
データロック情報の例:
mysql> SELECT * FROM performance_schema.data_locks\G
*************************** 1. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 139664434886512:1059:139664350547912
ENGINE_TRANSACTION_ID: 2569
            THREAD_ID: 46
             EVENT_ID: 12
        OBJECT_SCHEMA: test
          OBJECT_NAME: t1
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: NULL
OBJECT_INSTANCE_BEGIN: 139664350547912
            LOCK_TYPE: TABLE
            LOCK_MODE: IX
          LOCK_STATUS: GRANTED
            LOCK_DATA: NULL
*************************** 2. row ***************************
               ENGINE: INNODB
       ENGINE_LOCK_ID: 139664434886512:2:4:1:139664350544872
ENGINE_TRANSACTION_ID: 2569
            THREAD_ID: 46
             EVENT_ID: 12
        OBJECT_SCHEMA: test
          OBJECT_NAME: t1
       PARTITION_NAME: NULL
    SUBPARTITION_NAME: NULL
           INDEX_NAME: GEN_CLUST_INDEX
OBJECT_INSTANCE_BEGIN: 139664350544872
            LOCK_TYPE: RECORD
            LOCK_MODE: X
          LOCK_STATUS: GRANTED
            LOCK_DATA: supremum pseudo-record
ほとんどのパフォーマンススキーマデータ収集とは異なり、データロック情報を収集するか、データロックテーブルのサイズを制御するためのシステム変数を制御するためのインストゥルメントはありません。 パフォーマンススキーマは、サーバーですでに使用可能な情報を収集するため、この情報を生成したり、その収集を制御するパラメータを必要とするメモリーまたは CPU のオーバーヘッドはありません。
          data_locks テーブルを使用すると、負荷が高いときに発生するパフォーマンスの問題の診断に役立ちます。 InnoDB については、セクション15.15.2「InnoDB INFORMATION_SCHEMA トランザクションおよびロック情報」 でこのトピックの説明を参照してください。 
        
          data_locks テーブルには、次のカラムがあります:
        
              ENGINE
            
ロックを保持または要求したストレージエンジン。
              ENGINE_LOCK_ID
            
              ストレージエンジンによって保持または要求されたロックの ID。 (ENGINE_LOCK_ID、ENGINE) 値のタプルは一意です。 
            
「ロック ID」形式は内部形式であり、いつでも変更される可能性があります。 アプリケーションは、特定の形式のロック ID に依存しないでください。
              ENGINE_TRANSACTION_ID
            
              ロックを要求したトランザクションのストレージエンジン内部 ID。 これはロックの所有者とみなすことができますが、ロックはまだ保留中であり、実際にはまだ付与されていない可能性があります (LOCK_STATUS='WAITING')。 
            
トランザクションがまだ書込み操作を実行していない場合 (読取り専用とみなされます)、カラムにはユーザーが解釈しようとしない内部データが含まれます。 それ以外の場合、カラムはトランザクション ID です。
              InnoDB の場合、トランザクションの詳細を取得するには、このカラムを INFORMATION_SCHEMA INNODB_TRX テーブルの TRX_ID カラムと結合します。
            
              THREAD_ID
            
              ロックを作成したセッションのスレッド ID。 スレッドの詳細を取得するには、このカラムをパフォーマンススキーマ threads テーブルの THREAD_ID カラムと結合します。 
            
              THREAD_ID を EVENT_ID とともに使用して、メモリー内にロックデータ構造が作成されたイベントを判別できます。 (このイベントは、データ構造を使用して複数のロックが格納されている場合、この特定のロックリクエストが発生する前に発生した可能性があります。) 
            
              EVENT_ID
            
              ロックの原因となったパフォーマンススキーマイベント。 (THREAD_ID、EVENT_ID) 値のタプルは、他の「パフォーマンススキーマ」テーブルの親イベントを暗黙的に識別します: 
            
                  events_waits_ テーブルの親待機イベント
                xxx
                  events_stages_ テーブルの親ステージイベント
                xxx
                  events_statements_ テーブルの親ステートメントイベント
                xxx
                  events_transactions_current テーブルの親トランザクションイベント
                
              親イベントの詳細を取得するには、THREAD_ID カラムと EVENT_ID カラムを適切な親イベントテーブルの同名のカラムと結合します。 セクション27.19.2「親イベント情報の取得」を参照してください。 
            
              OBJECT_SCHEMA
            
ロックされたテーブルを含むスキーマ。
              OBJECT_NAME
            
ロックされたテーブルの名前。
              PARTITION_NAME
            
              ロックされたパーティションの名前 (存在する場合)。それ以外の場合は NULL。
            
              SUBPARTITION_NAME
            
              ロックされたサブパーティションの名前 (存在する場合)。それ以外の場合は NULL。
            
              INDEX_NAME
            
              ロックされたインデックスの名前 (存在する場合)。それ以外の場合は NULL。
            
              実際には、InnoDB は常にインデックス (GEN_CLUST_INDEX) を作成するため、INDEX_NAME は InnoDB テーブルに対して NULL 以外です。
            
              OBJECT_INSTANCE_BEGIN
            
ロックのメモリー内のアドレス。
              LOCK_TYPE
            
ロックのタイプ。
              この値はストレージエンジンに依存します。 InnoDB の場合、許可される値は、行レベルロックの場合は RECORD、テーブルレベルロックの場合は TABLE です。 
            
              LOCK_MODE
            
ロックのリクエスト方法。
              この値はストレージエンジンに依存します。 InnoDB の場合、許可される値は S[,GAP], X[,GAP], IS[,GAP], IX[,GAP], AUTO_INC および UNKNOWN です。 AUTO_INC および UNKNOWN 以外のロックモードは、ギャップロック (存在する場合) を示します。 S, X, IS, IX およびギャップロックの詳細は、セクション15.7.1「InnoDB ロック」 を参照してください。 
            
              LOCK_STATUS
            
ロックリクエストのステータス。
              この値はストレージエンジンに依存します。 InnoDB の場合、許可される値は、GRANTED (ロックが保持されている) および WAITING (ロックが待機されている) です。 
            
              LOCK_DATA
            
              ロックに関連付けられているデータ (ある場合)。 この値はストレージエンジンに依存します。 InnoDB の場合、LOCK_TYPE が RECORD の場合は値が表示され、それ以外の場合は NULL 値が表示されます。 ロックされたレコードの主キー値は、主キーインデックスに設定されたロックに対して表示されます。 ロックされたレコードのセカンダリインデックス値が表示され、セカンダリインデックスに配置されたロックに主キー値が追加されます。 主キーがない場合、LOCK_DATA では、InnoDB クラスタインデックスの使用を制御するルールに従って、選択した一意インデックスのキー値または一意の InnoDB 内部行 ID 番号のいずれかが表示されます (セクション15.6.2.1「クラスタインデックスとセカンダリインデックス」 を参照)。 LOCK_DATA は、supremum 擬似レコードで取得されたロックについて「「supremum 擬似レコード」」を報告します。 ロックされたレコードを含むページが、ロックの保持中にディスクに書き込まれたためにバッファプールにない場合、InnoDB はディスクからページをフェッチしません。 かわりに、LOCK_DATA は NULL をレポートします。 
            
          data_locks テーブルには次のインデックスがあります:
        
              主キー (ENGINE_LOCK_ID、ENGINE)
            
              (ENGINE_TRANSACTION_ID、ENGINE) のインデックス
            
              (THREAD_ID、EVENT_ID) のインデックス
            
              (OBJECT_SCHEMA, OBJECT_NAME, PARTITION_NAME, SUBPARTITION_NAME) のインデックス
            
          TRUNCATE TABLE は、data_locks テーブルに対して許可されていません。