MySQL Data Locks: Mapping 8.0 to 5.7
As of MySQL 8.0, performance_schema.data_locks
shows InnoDB data locks.
Before MySQL 8.0, you must SET GLOBAL innodb_status_output_locks=ON
and ruminate on the output of SHOW ENGINE INNODB STATUS
.
The image below (click to see full size) shows how the former maps to the latter for three record locks and one table lock on table t
.
Information Schema tables INNODB_LOCKS
and INNODB_LOCK_WAITS
are deprecated as of MySQL 5.7 and removed as of MySQL 8.0.
They are better than nothing, but “Persistence and Consistency of InnoDB Transaction and Locking Information” cautions their usage.
Moreover, INNODB_LOCKS
only shows locks blocking other transactions, which makes it unsuitable to examine InnoDB row locking without a blocking transaction.
Copyright 2024 Daniel Nichter