MySQL 5.7 Reference Manual Including MySQL NDB Cluster 7.5 and NDB Cluster 7.6 The metadata_locks Table

MySQL uses metadata locking to manage concurrent access to database objects and to ensure data consistency; see Section 8.11.4, “Metadata Locking”.

The Performance Schema exposes metadata lock information through the metadata_locks table:

This information enables you to understand metadata lock dependencies between sessions. You can see not only which lock a session is waiting for, but which session currently holds that lock.

The metadata_locks table is read only and cannot be updated. It is autosized by default; to configure the table size, set the performance_schema_max_metadata_locks system variable at server startup.

Metadata lock instrumentation uses the wait/lock/metadata/sql/mdl instrument, which is disabled by default.

To control metadata lock instrumentation state at server startup, use lines like these in your my.cnf file:

To control metadata lock instrumentation state at runtime, update the setup_instruments table:

The Performance Schema maintains metadata_locks table content as follows, using the LOCK_STATUS column to indicate the status of each lock:

The metadata_locks table has these columns:

TRUNCATE TABLE is not permitted for the metadata_locks table.