一、支持版本
·内核版本 MySQL 5.7 20190203 及以上。
·内核版本 MySQL 8.0 20200630 及以上
二、适用场景
主要适用于高并发并且锁冲突比较严重的场景。
三、性能数据
高并发,锁冲突严重的场景下有50%以上的 TPS 性能提升。
·测试方法:sysbench-oltp_read_write 场景(RR 隔离级别,8张表10MB条数据,pareto 随机模式)
·测试环境:32核128GB线上实例
| 线程数 | FCFS(FIFO) | CATS | 性能提升 |
| 128 | 11999 | 12005 | 0% |
| 256 | 6609 | 10137 | 53% |
| 512 | 3453 | 9365 | 171% |
| 1024 | 2196 | 7015 | 219% |
四、使用说明
MySQL 5.7 版本可以通过全局参数 innodb_trx_schedule_algorithm 来指定事务调度算法,该参数缺省值是 auto。
其中,算法有三种:
·auto:自动,根据当前系统状况自动调整。当锁等待线程数超过32个时采用 CATS 调度算法,否则采用 FCFS 算法。
·fcfs:先来先服务算法。
·cats:冲突感知调度算法。
| 参数名 | 动态 | 类型 | 默认 | 参数值范围 | 说明 |
| innodb_trx_schedule_algorithm | yes | string | auto | [auto,fcfs,cats] | 事务等待调度算法 |
注意:说明:
注意:用户目前无法直接修改参数 innodb_trx_schedule_algorithm 的参数值,如需修改可 提交工单 进行修改。
MySQL 8.0 版本固定采用 auto 算法,不可设置。