slave_parallel_workers - xiaoboluo768/qianjinliangfang GitHub Wiki
- 设置从库SQL线程并行重放events(事务)的worker线程数量(在MySQL cluster中不支持多线程复制,如果设置了则会自动忽略)
- 在5.6.x版本中的并行复制是基于库级别的并行复制,即主库有多个库,从库才能并行复制,如果主库只有一个库需要复制,那么从库也只能单线程复制(从5.7.x版本的并行复制是基于事务的并行复制,从库的SQL线程重放binlog时,是尽量模拟主库的并行事务提交的多线程复制,所以5.7.x版本的多线程复制才是真正的并行复制)
- 当设置这个参数大于0时,则SQL线程充当worker线程的协调者,在多个worker线程之间分发基于库级别的events(事务),意思就是说每个worker线程可以连续独立地执行一个库的事务,不需要去等待其他库的更新完成(即从库假定主库的事务是按照每个库隔离的,就是说没有跨库事务,如果有跨库事务,并行的worker复制时可能产生相互等待)
- 如果该参数大于0时,参数slave_transaction_retries被当作0处理且不可动态修改(该参数在slave_parallel_workers为0时,可动态修改,默认为10,作用是在SQL线程重放事务时,因为Innodb的死锁回滚或者事务执行超时时的事务重新提交的次数)
- 全局变量,动态变量,默认值为0,最大值为1024,整型值。注意:虽然这个变量可以动态修改,但是,要使动态修改之后的值生效,仍然需要stop slave;start slave重启一下复制线程(在mysql5.7.17版本中测试结果是需要重启才生效)。
上一篇:max_binlog_size | 下一篇:binlog_row_image