文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁 (TGZ) - 258.2Kb
手冊頁 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  InnoDB INFORMATION_SCHEMA 交易和鎖定資訊

17.15.2 InnoDB INFORMATION_SCHEMA 交易和鎖定資訊

一個 INFORMATION_SCHEMA 表格和兩個效能綱要表格可讓您監控 InnoDB 交易並診斷潛在的鎖定問題

  • INNODB_TRX:這個 INFORMATION_SCHEMA 表格提供目前在 InnoDB 內執行的每個交易的相關資訊,包括交易狀態(例如,它是正在執行還是等待鎖定)、交易開始時間,以及交易正在執行的特定 SQL 陳述式。

  • data_locks:這個效能綱要表格包含每個持有鎖定和每個被封鎖等待釋放持有鎖定的鎖定請求的列

    • 每個持有鎖定都有一個列,無論持有鎖定的交易狀態如何(INNODB_TRX.TRX_STATERUNNINGLOCK WAITROLLING BACKCOMMITTING)。

    • InnoDB 中每個等待另一個交易釋放鎖定的交易(INNODB_TRX.TRX_STATELOCK WAIT)都被恰好一個封鎖鎖定請求封鎖。該封鎖鎖定請求是針對另一個交易以不相容模式持有的列或表格鎖定。鎖定請求始終具有與封鎖請求的持有鎖定模式不相容的模式(讀取 vs. 寫入、共用 vs. 獨佔)。

      被封鎖的交易必須等到其他交易提交 (commit) 或回滾 (roll back) 後,才能繼續進行,藉此釋放請求的鎖定。對於每個被封鎖的交易,data_locks 表格會包含一個資料列,描述該交易已請求且正在等待的每個鎖定。

  • data_lock_waits:這個 Performance Schema 表格指出哪些交易正在等待給定的鎖定,或者給定的交易正在等待哪個鎖定。這個表格為每個被封鎖的交易包含一或多個資料列,指出它已請求的鎖定以及任何正在封鎖該請求的鎖定。REQUESTING_ENGINE_LOCK_ID 值指的是交易請求的鎖定,而 BLOCKING_ENGINE_LOCK_ID 值指的是(由另一個交易持有的)阻止第一個交易繼續進行的鎖定。對於任何給定的被封鎖交易,data_lock_waits 中的所有資料列對於 REQUESTING_ENGINE_LOCK_ID 都有相同的值,而對於 BLOCKING_ENGINE_LOCK_ID 則有不同的值。

有關上述表格的更多資訊,請參閱第 28.4.28 節,「The INFORMATION_SCHEMA INNODB_TRX Table」第 29.12.13.1 節,「The data_locks Table」第 29.12.13.2 節,「The data_lock_waits Table」