MySQL 8.4 版本注意事項
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
分析等待關係圖以更新排定交易權重的次數。