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


17.7.6 交易排程

InnoDB 使用「內容感知交易排程」(Contention-Aware Transaction Scheduling,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

    分析等待圖以更新已排程交易權重的次數。