文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  InnoDB INFORMATION_SCHEMA 交易與鎖定資訊

17.15.2 InnoDB INFORMATION_SCHEMA 交易與鎖定資訊

一個 INFORMATION_SCHEMA 資料表和兩個 Performance Schema 資料表讓您可以監視 InnoDB 交易,並診斷潛在的鎖定問題。

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

  • data_locks:這個 Performance Schema 資料表包含每個持有鎖定和每個等待釋放持有鎖定而被封鎖的鎖定要求的列。

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

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

      被封鎖的交易無法繼續,直到另一個交易提交或回滾,從而釋放所要求的鎖定。對於每個被封鎖的交易,data_locks 包含一個列,描述交易已要求但正在等待的每個鎖定。

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

有關上述表格的更多資訊,請參閱第 28.4.28 節,〈INFORMATION_SCHEMA INNODB_TRX 表〉第 29.12.13.1 節,〈data_locks 表〉,以及第 29.12.13.2 節,〈data_lock_waits 表〉