數(shù)據(jù)庫復制的主要性能問題就是數(shù)據(jù)延時
為了優(yōu)化復制性能缸浦,Mysql 5.6 引入了 “多線程復制” 這個新功能
但 5.6 中的每個線程只能處理一個數(shù)據(jù)庫,所以如果只有一個數(shù)據(jù)庫,或者絕大多數(shù)寫操作都是集中在某一個數(shù)據(jù)庫的卓嫂,那么這個“多線程復制”就不能充分發(fā)揮作用了
Mysql 5.7 對 “多線程復制” 進行了改善护锤,可以按照邏輯時鐘的方式來分配線程钱贯,大大提高了復制性能
下面看一下在5.7中如何配置 “多線程復制”
01
對兩個 mysql 實例配置好主從復制
配置過程可以參考以前的一篇文章
配置成功后吹截,在從庫上使用show processlist查看現(xiàn)在的狀態(tài)
可以看到只有一個復制線程在運行
02
在從庫上停止復制
mysql> stop slave;
03
設置并發(fā)同步類型為邏輯時鐘方式
先看下現(xiàn)在 slave 的并發(fā)類型,通過變量slave_parallel_type的值來獲得鳖谈,這個變量用來決定如何使用多線程復制
mysql> show variables like 'slave_parallel_type';
默認是datebase岁疼,每個線程只能處理一個數(shù)據(jù)庫
配置成基于邏輯時鐘的方式
mysql> set global slave_parallel_type='logical_clock';
04
設置復制線程的數(shù)量
先看下當前的并發(fā)數(shù)量,通過變量slave_parallel_workers的值來獲得缆娃,這個變量用來決定并發(fā)處理的線程數(shù)
mysql> show variables like 'slave_parallel_workers';
現(xiàn)在是 0捷绒,我們把他改成 4
mysql> set global slave_parallel_workers=4;
05
啟動復制
mysql> start slave;
06
驗證配置結(jié)果
mysql> show processlist;
可以看到已經(jīng)有4個IO線程了,配置完成