MySQL 9.0 发行说明
InnoDB
使用竞争感知事务调度 (CATS) 算法对等待锁定的交易进行优先级排序。当多个事务在等待同一个对象的锁定时,CATS 算法会确定哪个事务先获得锁。
CATS 算法通过分配调度权重来确定等待事务的优先级,该权重是根据事务阻塞的事务数量计算得出的。例如,如果两个事务在等待同一个对象的锁定,则阻塞最多事务的事务将被分配更大的调度权重。如果权重相同,则优先考虑等待时间最长的交易。
您可以通过查询信息架构 INNODB_TRX
表中的 TRX_SCHEDULE_WEIGHT
列来查看事务调度权重。仅为等待事务计算权重。等待事务是指处于 LOCK WAIT
事务执行状态的事务,如 TRX_STATE
列所示。未等待锁定的交易将报告 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
分析等待图以更新计划交易权重的次数。