10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 本手册下载 从本手册中摘录

15.7.6交易安排

InnoDB使用争用感知事务调度(CATS)算法来确定等待锁的事务。当多个事务正在等待同一对象上的锁时,CATS算法确定哪个事务首先接收锁定。

CATS算法通过分配调度权对等待的事务进行优先级排序,该权值是基于事务块的事务数量计算的。例如,如果两个事务在同一对象上等待一个锁,那么阻塞最多事务的事务将被分配更大的调度权重。如果权值相等,则优先级给予等待时间最长的事务。

请注意

在MySQL 8.0.20之前,InnoDB也使用先进先出(FIFO)算法来调度事务,并且CATS算法只在严重锁争用的情况下使用。MySQL 8.0.20中的CATS算法增强使FIFO算法变得冗余,允许其移除。先前由FIFO算法执行的事务调度由MySQL 8.0.20的CATS算法执行。在某些情况下,此更改可能会影响授予事务锁的顺序。

您可以通过查询来查看交易计划权重TRX_SCHEDULE_WEIGHT列在INFORMATION_SCHEMA。INNODB_TRX表格权重仅为等待的事务计算。等待交易是指在锁等待事务执行状态,由trx_state.列。不等待锁的事务报告NULLTRX_SCHEDULE_WEIGHT价值。

INNODB_METRICS提供计数器用于监视代码级事务调度事件。有关使用的信息INNODB_METRICS计数器,看第15.15.6节“Innodb Information_schema指标表”

  • lock_rec_release_attempts

    释放记录锁的尝试次数。单个尝试可能导致释放零或更多记录锁,因为单个结构中可能存在零或更多的记录锁。

  • lock_rec_grant_attempts

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

  • lock_schedule_refreshes.

    分析等待图以更新计划事务权值的次数。