Binlog 是邏輯複製,WAL 串流是物理複製

高可用方案的差別可以收斂成一句:複製的是「做了什麼操作」,還是「磁碟上變成什麼樣子」。

MySQL:Binlog(邏輯複製)PostgreSQL:Streaming Replication(物理複製,基於 WAL)
複製什麼操作日誌WAL(Write Ahead Log) 的物理變更
優點非常靈活:Master-Slave、雙向複製,甚至手動解析 Binlog 做 CDC(如 Debezium)一致性極高,主從延遲通常比 MySQL 低且穩定
缺點傳統非同步複製可能丟數據(主庫掛掉時 Binlog 還沒傳過去);有 Group Replication 但配置複雜版本要求嚴格(主從版本必須一致),升級麻煩

PG 10 之後也支援邏輯複製,但物理複製仍是主流的高可用方案。

取捨的形狀

  • 要把資料流到別的系統(搜尋引擎、資料倉儲、事件流)→ 邏輯複製的靈活度是關鍵,Binlog + Debezium 是成熟路線
  • 要的是主從一致、延遲穩定的高可用 → 物理複製更可靠,但你被綁在同一個大版本上,升級要停機規劃

相關:垂直擴展換機器,水平擴展換複雜度