PostgreSQL 大表重構實戰:運用 Expand and Contract 模式實現零停機 Schema 變更
當單一資料表累積超過數千萬筆資料時,直接執行 ALTER TABLE ADD COLUMN 或修改欄位型別常引發長時間 ACCESS EXCLUSIVE 鎖定。本文詳解如何透過 Expand and Contract 漸進演化與雙寫機制,確保服務不中斷。
作者:陳冠宇 (資深資料架構顧問)
閱讀全文 →
由 Data Prismhub Advisory 第一線架構顧問撰寫。深入技術底層機制、執行計畫剖析、鎖定競爭與分散式一致性實踐,為工程師與技術主管提供具備生產級參考價值的架構筆記。
當單一資料表累積超過數千萬筆資料時,直接執行 ALTER TABLE ADD COLUMN 或修改欄位型別常引發長時間 ACCESS EXCLUSIVE 鎖定。本文詳解如何透過 Expand and Contract 漸進演化與雙寫機制,確保服務不中斷。
死鎖 (Deadlock) 是高併發後端系統最隱蔽的效能殺手。本文透過真實案例還原交叉鎖定鏈路,探討交易語句執行順序、外鍵無索引引發的表級鎖升級以及樂觀鎖重試機制的最佳配置。
引入唯讀副本 (Read Replicas) 雖能分散查詢負載,但也伴隨著主從複製延遲帶來的「剛寫入卻讀不到」的資料一致性難題。本文深入探討 Pinning 主庫路由、GTID 與快取輔助策略。
將龐大的單體資料庫依據領域驅動設計 (DDD) 拆分至各自微服務時,跨表 JOIN 失效與跨服務交易該如何處理?本文梳理資料邊界劃分、CQRS 與 Saga 補償機制的落地步驟。