在雲原生與 Jamstack / Serverless(如 Vercel、Cloudflare Workers、AWS Lambda)盛行的今天,開發者可以在數秒內全球部署前端與邊緣函數。
然而,傳統的關聯式資料庫(如 AWS RDS PostgreSQL / MySQL)卻成為了現代架構體系中最大的阻礙:
- 連線數瞬間耗盡:數千個短暫的 Serverless 函數同時連線,瞬間打爆資料庫連線池(Connection Pool);
- 無法縮容到零(Scale to Zero):即使夜間完全無流量,仍需支付全天候昂貴的實例租金;
- 分支開發極度痛苦:無法像 Git Branch 一樣秒級為每個 Pull Request 複製一個獨立的資料庫副本進行測試。
為了徹底打破這些桎梏,Neon 與 PlanetScale 代表了現代雲原生資料庫的兩大巔峰技術流派。
本文將帶你深入兩者的底層微架構,拆解計算儲存分離與分散式分片的革新秘密。
1. 兩大技術流派全景對比矩陣
| 評估維度 | Neon (Serverless PostgreSQL) | PlanetScale (Vitess 分散式 MySQL) |
|---|---|---|
| 底層資料庫引擎 | 原生 100% 相容 PostgreSQL | 原生相容 MySQL (基於 YouTube Vitess 分散式中介軟體) |
| 核心架構哲學 | 計算與儲存徹底分離 (Disaggregated Compute & Storage) | 水平分庫分表與連接池池化 (Horizontal Sharding & VTGate) |
| 資料庫分支 (Branching) | 極致(基於儲存層 Copy-on-Write,秒級建立 TB 級資料庫分支) | 基於 Vitess 邏輯分支與 Schema 鏡像 |
| 無流量縮容 (Scale-to-Zero) | ✅ 原生支援(無請求時計算節點完全凍結,秒級冷啟動恢復) | 託管環境自適應休眠 |
| 連線池治理 | 內建基於 Rust 的 WebSocket / TCP 輕量 Connection Pooler | 透過 VTGate 提供抗數十萬併發的頂級連接池 |
| 水平擴展極限 | 單計算節點垂直擴展 + 儲存無上限 + 多唯讀副本 | 跨節點無限水平 Sharding 分片 |
2. Neon 底層架構:PostgreSQL 內核級計算儲存分離
Neon 的核心突破在於:將 PostgreSQL 的計算節點(Compute Node)改造成完全無狀態的臨時容器,而將儲存層下沉至自研的 Rust 分散式儲存引擎!
秒級資料庫分支(Copy-on-Write Branching)
- 由於儲存層以不可變的 WAL 日誌組織,當開發者執行
neon branch create pr-123時; - Neon 完全不需要複製物理數據,只需記錄一個快照指針(Snapshot LSN),在 1 秒內 就能為 PR 提供一個包含生產環境全量資料的獨立測試庫!
3. PlanetScale 底層架構:承載全球最大流量的 Vitess 引擎
PlanetScale 的底層採用了支撐 YouTube 數十億 QPS 的開源專案 Vitess:
PlanetScale 殺手級特性:無鎖 Schema 遷移(Deploy Requests)
在生產環境執行 ALTER TABLE 傳統上極易引發鎖表導致系統崩潰:
- PlanetScale 引入了類似 GitHub PR 的 Deploy Request 流程;
- 透過
gh-ost原理在後台建立影子表並以 CDC 雙寫同步,切換過程零鎖表、零停機時間!
4. 總結與架構選型指南
- 選 Neon (Postgres):
- 開發現代 Serverless 全端應用(Next.js、Supabase、FastAPI);
- 需要強大的 Git-like 數據庫分支 進行 CI/CD 預覽與測試;
- 流量具有潮汐性,強烈需要 Scale-to-Zero(降至 0 成本)。
- 選 PlanetScale (MySQL / Vitess):
- 超大型企業核心交易業務,資料量達數十 TB 且持續高速增長;
- 需要極致的 水平分庫分表(Horizontal Sharding) 與抗數十萬併發連線能力。
