文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


17.7.6 事务调度

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

    分析等待图以更新计划交易权重的次数。