MySQL 主從複制中,Slave 落後 Master 是常見痛點。核心原因在於:Master 採用 InnoDB 並發提交事務,而 Slave 傳統上只有單一 SQL 線程回放 Binlog,無法真正並行。加上 MySQL 複制本質是異步(即使半同步也只保證傳到 Slave,不保證提交),延遲在所難免。若 Slave 機器配置更低、甚至跑多實例,問題更嚴重。
MariaDB 實作了基於組提交的並行複制(slave_parallel_threads),不受「單庫並行」限制,實測能近乎即時追上 Master。若不想換版本,只能等官方 MySQL 5.7+ 的邏輯時鐘並行複制。
Row 格式下,無主鍵會導致每行更新/刪除觸發全表掃描,大表直接拖垮 Slave。參考案例:主鍵缺失導致備庫 Hang 住。
前端用記憶體快取或本地佇列合併讀寫、消除冗餘寫請求,降低 Binlog 產生量。
避免單庫/單表熱點導致整個實例複制阻塞。
更多技巧歡迎補充!