文件首頁
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


17.7.6 交易排程

InnoDB 使用「內容感知交易排程」(CATS) 演算法,優先處理正在等待鎖定的交易。當多個交易正在等待同一個物件上的鎖定時,CATS 演算法會決定哪個交易先收到鎖定。

CATS 演算法會透過指派排程權重來優先處理等待中的交易,該權重是根據交易封鎖的交易數量計算的。例如,如果有兩個交易正在等待同一個物件上的鎖定,則封鎖最多交易的交易會被指派較高的排程權重。如果權重相等,則優先給予等待時間最長的交易。

您可以透過查詢資訊綱要 INNODB_TRX 資料表中的 TRX_SCHEDULE_WEIGHT 資料行來檢視交易排程權重。權重僅為等待中的交易計算。等待中的交易是 TRX_STATE 資料行回報的 LOCK WAIT 交易執行狀態中的交易。沒有等待鎖定的交易會回報 NULL 的 TRX_SCHEDULE_WEIGHT 值。

為監控程式碼層級交易排程事件,提供了 INNODB_METRICS 計數器。如需關於使用 INNODB_METRICS 計數器的資訊,請參閱第 17.15.6 節「InnoDB INFORMATION_SCHEMA 指標資料表」

  • lock_rec_release_attempts

    釋放記錄鎖定的嘗試次數。單次嘗試可能會導致釋放零個或多個記錄鎖定,因為單一結構中可能存在零個或多個記錄鎖定。

  • lock_rec_grant_attempts

    授予記錄鎖定的嘗試次數。單次嘗試可能會導致授予零個或多個記錄鎖定。

  • lock_schedule_refreshes

    分析等待關係圖以更新排定交易權重的次數。