數據庫復制的主要性能問題就是數據延時
為了優化復制性能,Mysql 5.6 引入了 “多線程復制” 這個新功能
但 5.6 中的每個線程只能處理一個數據庫,所以如果只有一個數據庫,或者絕大多數寫操作都是集中在某一個數據庫的,那么這個“多線程復制”就不能充分發揮作用了
Mysql 5.7 對 “多線程復制” 進行了改善,可以按照邏輯時鍾的方式來分配線程,大大提高了復制性能
下面看一下在5.7中如何配置 “多線程復制”
01
對兩個 mysql 實例配置好主從復制
配置成功后,在從庫上使用show processlist查看現在的狀態
02
在從庫上停止復制
mysql> stop slave;

03
設置並發同步類型為邏輯時鍾方式
先看下現在 slave 的並發類型,通過變量slave_parallel_type的值來獲得,這個變量用來決定如何使用多線程復制
mysql> show variables like 'slave_parallel_type';

默認是datebase,每個線程只能處理一個數據庫
配置成基於邏輯時鍾的方式
mysql> set global slave_parallel_type='logical_clock';


04
設置復制線程的數量
先看下當前的並發數量,通過變量slave_parallel_workers的值來獲得,這個變量用來決定並發處理的線程數
mysql> show variables like 'slave_parallel_workers';

現在是 0,我們把他改成 4
mysql> set global slave_parallel_workers=4;

05
啟動復制
mysql> start slave;
06
驗證配置結果
mysql> show processlist;

可以看到已經有4個IO線程了,配置完成