MySQL 8.3 Release Notes
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
更新计划事务权重的次数,以便分析等待图形。