MYSQL存储引擎InnoDB(五十六):事务调度

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

CATS 算法通过分配调度权重来确定等待事务的优先级,调度权重是根据事务阻塞的事务数计算的。例如,如果两个事务正在等待对同一对象的锁定,则为阻塞最多事务的事务分配更大的调度权重。如果权重相等,则优先考虑等待时间最长的事务。

您可以通过查询INFORMATION_SCHEMA.INNODB_TRX表中的TRX_SCHEDULE_WEIGHT列来查看事务调度权重 。仅针对等待交易计算权重。等待事务是那些处于LOCK WAIT 事务执行状态的事务,如 TRX_STATE列所报告的那样。不等待锁定的事务的TRX_SCHEDULE_WEIGHT值为NULL。

INNODB_METRICS计数器用于监视代码级事务调度事件。

1、lock_rec_release_attempts

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


2、lock_rec_grant_attempts

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


3、lock_schedule_refreshes

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

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章