MySQL 8.4 Reference Manual Including MySQL NDB Cluster 8.4
          The Performance Schema exposes table lock information through
          the table_handles table to show
          the table locks currently in effect for each opened table
          handle. table_handles reports
          what is recorded by the table lock instrumentation. This
          information shows which table handles the server has open, how
          they are locked, and by which sessions.
        
          The table_handles table is read
          only and cannot be updated. It is autosized by default; to
          configure the table size, set the
          performance_schema_max_table_handles
          system variable at server startup.
        
          Table lock instrumentation uses the
          wait/lock/table/sql/handler instrument,
          which is enabled by default.
        
          To control table lock instrumentation state at server startup,
          use lines like these in your my.cnf file:
        
Enable:
[mysqld] performance-schema-instrument='wait/lock/table/sql/handler=ON'
Disable:
[mysqld] performance-schema-instrument='wait/lock/table/sql/handler=OFF'
          To control table lock instrumentation state at runtime, update
          the setup_instruments table:
        
Enable:
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME = 'wait/lock/table/sql/handler';
Disable:
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO', TIMED = 'NO' WHERE NAME = 'wait/lock/table/sql/handler';
          The table_handles table has these
          columns:
        
              OBJECT_TYPE
            
The table opened by a table handle.
              OBJECT_SCHEMA
            
The schema that contains the object.
              OBJECT_NAME
            
The name of the instrumented object.
              OBJECT_INSTANCE_BEGIN
            
The table handle address in memory.
              OWNER_THREAD_ID
            
The thread owning the table handle.
              OWNER_EVENT_ID
            
The event which caused the table handle to be opened.
              INTERNAL_LOCK
            
              The table lock used at the SQL level. The value is one of
              READ, READ WITH SHARED
              LOCKS, READ HIGH PRIORITY,
              READ NO INSERT, WRITE ALLOW
              WRITE, WRITE CONCURRENT
              INSERT, WRITE LOW PRIORITY,
              or WRITE. For information about these
              lock types, see the
              include/thr_lock.h source file.
            
              EXTERNAL_LOCK
            
              The table lock used at the storage engine level. The value
              is one of READ EXTERNAL or
              WRITE EXTERNAL.
            
          The table_handles table has these
          indexes:
        
              Primary key on (OBJECT_INSTANCE_BEGIN)
            
              Index on (OBJECT_TYPE,
              OBJECT_SCHEMA,
              OBJECT_NAME)
            
              Index on (OWNER_THREAD_ID,
              OWNER_EVENT_ID)
            
          TRUNCATE TABLE is not permitted
          for the table_handles table.