10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.1 kb
手册页(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

15.7.6事务调度

InnoDB使用竞争感知事务调度(CATS)算法对等待锁的事务进行优先级排序。当多个事务在同一对象上等待锁时,CATS算法确定哪个事务先收到锁。

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

请注意

在MySQL 8.0.20之前,InnoDB也使用先进先出(FIFO)算法来调度事务,CATS算法仅在锁争用严重的情况下使用。MySQL 8.0.20中的CATS算法增强使FIFO算法变得多余,允许移除它。从MySQL 8.0.20开始,以前由FIFO算法执行的事务调度将由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

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

  • lock_rec_grant_attempts

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

  • lock_schedule_refreshes

    分析等待图以更新预定事务权重的次数。