MySQL 9.5 Reference Manual Including MySQL NDB Cluster 9.5
      One INFORMATION_SCHEMA table and two
      Performance Schema tables enable you to monitor
      InnoDB transactions and diagnose potential
      locking problems:
    
          INNODB_TRX: This
          INFORMATION_SCHEMA table provides
          information about every transaction currently executing inside
          InnoDB, including the transaction state
          (for example, whether it is running or waiting for a lock),
          when the transaction started, and the particular SQL statement
          the transaction is executing.
        
          data_locks: This Performance
          Schema table contains a row for each hold lock and each lock
          request that is blocked waiting for a held lock to be
          released:
        
              There is one row for each held lock, whatever the state of
              the transaction that holds the lock
              (INNODB_TRX.TRX_STATE is
              RUNNING, LOCK WAIT,
              ROLLING BACK or
              COMMITTING).
            
              Each transaction in InnoDB that is waiting for another
              transaction to release a lock
              (INNODB_TRX.TRX_STATE is LOCK
              WAIT) is blocked by exactly one blocking lock
              request. That blocking lock request is for a row or table
              lock held by another transaction in an incompatible mode.
              A lock request always has a mode that is incompatible with
              the mode of the held lock that blocks the request (read
              vs. write, shared vs. exclusive).
            
              The blocked transaction cannot proceed until the other
              transaction commits or rolls back, thereby releasing the
              requested lock. For every blocked transaction,
              data_locks contains one row
              that describes each lock the transaction has requested,
              and for which it is waiting.
            
          data_lock_waits: This Performance
          Schema table indicates which transactions are waiting for a
          given lock, or for which lock a given transaction is waiting.
          This table contains one or more rows for each blocked
          transaction, indicating the lock it has requested and any
          locks that are blocking that request. The
          REQUESTING_ENGINE_LOCK_ID value refers to
          the lock requested by a transaction, and the
          BLOCKING_ENGINE_LOCK_ID value refers to the
          lock (held by another transaction) that prevents the first
          transaction from proceeding. For any given blocked
          transaction, all rows in
          data_lock_waits have the same
          value for REQUESTING_ENGINE_LOCK_ID and
          different values for
          BLOCKING_ENGINE_LOCK_ID.
        
For more information about the preceding tables, see Section 28.4.28, “The INFORMATION_SCHEMA INNODB_TRX Table”, Section 29.12.13.1, “The data_locks Table”, and Section 29.12.13.2, “The data_lock_waits Table”.