<a href="https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html">https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html</a>
一句話概括:通過組送出的方式 master怎麼并行,slave就怎麼并行。
關鍵因素:組送出
一句話概括:解決單線程複制的延遲問題 note1:當master有多個線程在寫資料,那麼mts效果會非常好 note2:如果master對大表進行ddl,這樣的延遲是沒辦法避免的
參數
comment
預設配置
推薦配置
調整方式
slave_parallel_workers
applier threads數量
16
dynamic
slave_parallel_type
并行方式
database
logical_clock
slave_preserve_commit_order
并行排序送出
1
master_info_repository
master_info持久化方式
file
static
relay_log_info_repository
relay_info持久化方式
relay_log_recovery
重新擷取relay log
io thread并沒有改變 sql thread 會變成coordinator線程 會新增很多work線程來受coordinator排程
同一個last_committed 可以并行執行 同一個last_committed 中的sequence_number 預設是無序的
當slave_preserve_commit_order=0時
沒有辦法保證順序,在恢複的過程中會有問題,到時候你怎麼start slave 呢? start slave until sql_after_mts_gaps ; reset slave
當slave_preserve_commit_order=1時
後一個sequence_number送出的時候,會等待前一個sequence_number完成。 waiting for preceding transaction to commit