| 維度 | MySQL | PostgreSQL |
|---|---|---|
| 主導實體 | 商業公司(MySQL AB → Sun → Oracle) | 志願者開發社群(PGDG) |
| 發布節奏 | 較謹慎、企業級穩定優先 | 較激進、功能導向、版本週期固定 |
| 儲存架構 | 插拔式儲存引擎 | 單一核心儲存管理器 |
| 並發模型 | 執行緒 | 進程 |
VACUUM/ANALYZE(自動清理守護進程已大幅改善)。| 特性 | MySQL 8.0 | PostgreSQL 15 |
|---|---|---|
| CTE/遞迴查詢 | ✅ 8.0+ | ✅ 早期支援 |
| 窗口函數 | ✅ 8.0+ | ✅ 早期支援 |
| JSON/JSONB | JSON(函數索引 8.0.17+) | JSONB(原生二進制、GIN 索引) |
| 全文搜尋 | FULLTEXT (ngram) | tsvector/tsquery + GIN,多語言支援 |
| 分區表 | 原生分區(Range/List/Hash/Key) | 聲明式分區(Range/List/Hash),支援分區剪枝 |
| 邏輯複寫 | 基於 Binlog (GTID) | 發布/訂閱,細粒度、雙向 |
| 並行複寫 | ✅ 基於邏輯時鐘 | ✅ 並行應用 |
| 備份工具 | XtraBackup, mysqldump | pg_basebackup, pg_dump, Barman |
| 高可用 | InnoDB Cluster, MHA, Orchestrator | Patroni, repmgr, pg_auto_failover |
| 專案特徵 | 推薦 | 關鍵理由 |
|---|---|---|
| Web 高併發讀多寫少、團隊熟悉 MySQL、成本敏感 | MySQL | 生態成熟、讀寫分離簡單、雲端託管最便宜 |
| 複雜業務邏輯下推、需存儲過程、豐富資料類型 | PostgreSQL | PL/pgSQL、陣列、範圍、JSONB、GiST/GIN 索引 |
| 地理空間/PostGIS、專業 GIS 應用 | PostgreSQL | PostGIS 黃金搭檔,功能最全 |
| 文件導向/半結構化資料、需 JSON 索引查詢 | PostgreSQL | JSONB 原生二進制 + GIN 索引極強 |
| OLAP 分析查詢、大表聚合、平行查詢 | PostgreSQL / ClickHouse | 成熟平行執行、列式引擎選擇 |
| 遷移 Oracle、相容 PL/SQL、企業級標準 | PostgreSQL | orafce、PL/SQL 相容、SQL 標準相容度最高 |
| 嵌入式/邊緣裝置、單機極簡部署 | SQLite / MySQL Embedded | 零配置、單一檔案 |
MySQL 勝在生態廣度、讀取極速、運維簡單、人才易得;PostgreSQL 勝在功能深度、標準相容、進階索引、JSONB、複雜查詢優化、擴充性。現代專案兩者皆可作為主力關聯式資料庫,關鍵在於團隊技能傾向、既有技術棧、特定功能需求(GIS/JSON/OLAP/遷移 Oracle)與長期演進規劃。