Documentation Home
MySQL 9.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 261.1Kb
Man Pages (Zip) - 368.3Kb
Info (Gzip) - 4.1Mb
Info (Zip) - 4.1Mb


MySQL 9.3 Reference Manual  / ...  / The InnoDB Storage Engine  / InnoDB INFORMATION_SCHEMA Tables  / InnoDB INFORMATION_SCHEMA Transaction and Locking Information  /  Persistence and Consistency of InnoDB Transaction and LockingInformation

17.15.2.3 Persistence and Consistency of InnoDB Transaction and LockingInformation

The data exposed by the transaction and locking tables (INFORMATION_SCHEMAINNODB_TRX table, Performance Schemadata_locks anddata_lock_waits tables) represents a glimpse into fast-changing data. This is not like user tables, where the data changes only when application-initiated updates occur. The underlying data is internal system-managed data, and can change very quickly:

  • Data might not be consistent between theINNODB_TRX,data_locks, anddata_lock_waits tables.

    Thedata_locks anddata_lock_waits tables expose live data from theInnoDB storage engine, to provide lock information about the transactions in theINNODB_TRX table. Data retrieved from the lock tables exists when theSELECT is executed, but might be gone or changed by the time the query result is consumed by the client.

    Joiningdata_locks withdata_lock_waits can show rows indata_lock_waits that identify a parent row indata_locks that no longer exists or does not exist yet.

  • Data in the transaction and locking tables might not be consistent with data in theINFORMATION_SCHEMAPROCESSLIST table or Performance Schemathreads table.

    For example, you should be careful when comparing data in theInnoDB transaction and locking tables with data in thePROCESSLIST table. Even if you issue a singleSELECT (joiningINNODB_TRX andPROCESSLIST, for example), the content of those tables is generally not consistent. It is possible forINNODB_TRX to reference rows that are not present inPROCESSLIST or for the currently executing SQL query of a transaction shown inINNODB_TRX.TRX_QUERY to differ from the one inPROCESSLIST.INFO.