Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

17.7.6 事务调度

InnoDB 使用争用感知事务调度(CATS)算法来确定等待锁的事务的优先级。当多个事务等待同一个对象的锁时,CATS 算法确定哪个事务首先获得锁。

CATS 算法通过根据事务阻塞的其他事务数量来计算事务的调度权重。例如,如果两个事务等待同一个对象的锁,那么阻塞最多事务的那个事务将被分配更高的调度权重。如果权重相等,则优先考虑等待时间最长的事务。

您可以通过查询 Information Schema INNODB_TRX 表的 TRX_SCHEDULE_WEIGHT 列来查看事务调度权重。权重仅计算等待事务。等待事务是指处于 LOCK WAIT 事务执行状态的那些事务,如 TRX_STATE 列所报告的那样。未等待锁的事务将报告 NULL TRX_SCHEDULE_WEIGHT 值。

INNODB_METRICS 计数器提供了监控事务调度事件的代码级别。有关使用 INNODB_METRICS 计数器的信息,请参阅 第 17.15.6 节,“InnoDB INFORMATION_SCHEMA Metrics 表”

  • lock_rec_release_attempts

    释放记录锁的尝试次数。单个尝试可能会导致零个或多个记录锁被释放,因为可能有零个或多个记录锁在同一个结构中。

  • lock_rec_grant_attempts

    授予记录锁的尝试次数。单个尝试可能会导致零个或多个记录锁被授予。

  • lock_schedule_refreshes

    更新计划事务权重的次数,以便分析等待图形。