前言
数据库复制的主要性能问题就是数据延时。
为了优化复制性能,Mysql 5.6 引入了 “多线程复制” 这个新功能。但 5.6 中的每个线程只能处理一个数据库,所以如果只有一个数据库,或者绝大多数写操作都是集中在某一个数据库的,那么这个“多线程复制”就不能充分发挥作用了。
Mysql 5.7 对 “多线程复制” 进行了改善,可以按照逻辑时钟的方式来分配线程,大大提高了复制性能。
下面看一下在5.7中如何配置 “多线程复制”:
01
主从复制配置成功后,在**从库
**查看现在的状态
show processlist
02
在从库上停止复制
stop slave;
03
设置并发同步类型为逻辑时钟方式。
先看下现在 slave 的并发类型,通过变量slave_parallel_type的值来获得,这个变量用来决定如何使用多线程复制
show variables like 'slave_parallel_type';
**默认是datebase,每个线程只能处理一个数据库。**配置成基于逻辑时钟的方式
set global slave_parallel_type='logical_clock';
再次查看 slave 的并发类型
show variables like 'slave_parallel_type';
04
设置复制线程的数量。
先看下当前的并发数量,通过变量slave_parallel_workers的值来获得,这个变量用来决定并发处理的线程数
show variables like 'slave_parallel_workers';
现在是 0,把它设置成 3:
set global slave_parallel_workers=3;
再次查看:
show variables like 'slave_parallel_workers';
05
启动复制:
start slave;
验证配置结果:
show processlist
End
可以看到已经有3个IO线程了,配置完成。
评论区