基本概念
讀寫分離將查詢操作(SELECT)路由到從庫,寫入操作(INSERT/UPDATE/DELETE)路由到主庫,主庫再透過同步機制(如 MySQL Replication)將變更異步/同步複製到從庫。
常見誤區澄清
提問者擔心:「從庫本來是備份,現在承擔查詢,主庫寫入後同步到從庫不也是寫入嗎?這樣還有意義嗎?」
關鍵差異
- 用戶端寫入:僅發送至主庫,應用層不直接操作從庫,避免衝突。
- 同步寫入:由資料庫內部協議(Binlog/GTID)自動完成,高效、有序、可重試,非應用層隨機寫入。
- 讀寫比例:典型 Web 應用讀多寫少(如 10:1 或 100:1),分流查詢能大幅降低主庫壓力,提升整體吞吐。
適用場景
- 讀請求佔絕大多數(部落格、電商瀏覽、社交動態流)。
- 可容忍毫秒級數據不一致(最終一致性)。
不適用場景
- 寫入頻繁、強一致性要求高(金融核心帳務)。
- 讀寫比例接近 1:1,分離收益微乎其微。
總結
讀寫分離的核心價值在於「將高併發讀壓力轉移到廉價可擴展的從庫」,主庫專注處理寫入與同步,同步屬於基礎設施層面,不屬於業務邏輯寫入,兩者不衝突。