MySQL 複製功能是使用下列類型的執行緒實作的
二進位日誌傾印執行緒。 當複本連線時,來源會建立執行緒,將二進位日誌內容傳送至複本。此執行緒可以在來源上使用
SHOW PROCESSLIST
的輸出中識別為Binlog Dump
執行緒。複製 I/O 接收器執行緒。 當在複本伺服器上發出
START REPLICA
陳述式時,複本會建立一個 I/O (接收器) 執行緒,該執行緒會連線至來源並要求其傳送記錄在其二進位日誌中的更新。複製接收器執行緒會讀取來源的
Binlog Dump
執行緒傳送的更新 (請參閱前一個項目),並將其複製到構成複本中繼日誌的本機檔案中。此執行緒的狀態在
SHOW REPLICA STATUS
的輸出中顯示為Slave_IO_running
。複製 SQL 套用程式執行緒。 當
replica_parallel_workers
等於 0 時,複本會建立一個 SQL (套用程式) 執行緒,以讀取複製接收器執行緒寫入的中繼日誌,並執行其中包含的交易。當replica_parallel_workers
為
時,則會有N
>= 1N
個套用程式執行緒和一個協調器執行緒,協調器執行緒會依序從中繼日誌讀取交易,並排程由工作執行緒套用這些交易。每個工作執行緒都會套用協調器已指派給它的交易。
您可以透過將系統變數 replica_parallel_workers
設定為大於 0 的值,來為複本上的任務啟用進一步的平行化。完成此操作後,複本會建立指定數目的工作執行緒來套用交易,以及一個協調器執行緒,該執行緒會從中繼日誌讀取交易並將其指派給工作執行緒。將 replica_parallel_workers
(slave_parallel_workers
) 設定為大於 0 的值的複本稱為多執行緒複本。如果您使用多個複製通道,則每個通道都有使用此變數指定的執行緒數目。
NDB Cluster 也支援多執行緒複本。如需更多資訊,請參閱第 25.7.11 節,「使用多執行緒應用程式的 NDB Cluster 複寫」。