MySQL 9.0 版本資訊
MySQL 使用中繼資料鎖定來管理對資料庫物件的並行存取,並確保資料一致性;請參閱第 10.11.4 節,「中繼資料鎖定」。中繼資料鎖定不僅適用於資料表,也適用於結構描述、儲存程式(程序、函數、觸發程序、排程事件)、資料表空間、使用 GET_LOCK()
函數取得的使用者鎖定(請參閱第 14.14 節,「鎖定函數」),以及使用第 7.6.9.1 節,「鎖定服務」中所述鎖定服務取得的鎖定。
效能綱要透過 metadata_locks
資料表公開中繼資料鎖定資訊。
已授與的鎖定(顯示哪些工作階段擁有哪些目前的中繼資料鎖定)。
已請求但尚未授與的鎖定(顯示哪些工作階段正在等待哪些中繼資料鎖定)。
已被死鎖偵測器終止的鎖定請求。
已逾時且正在等待請求工作階段的鎖定請求被捨棄的鎖定請求。
此資訊可讓您了解工作階段之間的中繼資料鎖定相依性。您不僅可以查看工作階段正在等待哪個鎖定,還可以查看哪個工作階段目前持有該鎖定。
[mysqld] performance-schema-instrument='wait/lock/metadata/sql/mdl=ON'
[mysqld] performance-schema-instrument='wait/lock/metadata/sql/mdl=OFF'
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME = 'wait/lock/metadata/sql/mdl';
UPDATE performance_schema.setup_instruments SET ENABLED = 'NO', TIMED = 'NO' WHERE NAME = 'wait/lock/metadata/sql/mdl';