| 特性 | MySQL | PostgreSQL |
|---|---|---|
| 首發年份 | 1994 | 1985 (Berkeley POSTGRES 繼承) |
| 許可協議 | GPL + 商業雙許可 | BSD/MIT 寬鬆許可 |
| 治理模式 | Oracle 主導,多版本分支 | 社區驅動,單一完整版本 |
| 核心哲學 | 靈活、多引擎、Web 導向 | 嚴謹、ACID 優先、標準兼容 |
通過 postgresql.conf 參數調優,支持表分區、並行查詢、JIT 編譯(PG11+),行為一致性強。
| 維度 | MySQL | PostgreSQL |
|---|---|---|
| ACID 支持 | InnoDB 完全支持,其他引擎不支持 | 原生完全支持 |
| 數據類型豐富度 | 基礎類型 + JSON | 數組、範圍、幾何、網絡地址、JSONB、自定義類型 |
| 索引類型 | B+Tree、Hash、Fulltext、Spatial | BTree、Hash、GIN、GiST、SP-GiST、BRIN、Bloom |
| 高可用方案 | MHA、Orchestrator、Group Replication、InnoDB Cluster | Patroni、repmgr、PgBouncer、流式復制+邏輯復制 |
| 時間點恢復 (PITR) | 需依賴備份工具 | 原生 WAL-G、Barman 支持 |
| 嵌入式支持 | libmysqld 支持 | 不支持,純 C/S 架構 |
PostgreSQL 以 ANSI-SQL:2008 兼容為目標;MySQL 兼容大部分標準但保留擴展語法。遷移成本上,PostgreSQL 更易從 Oracle/SQL Server 遷移。
| MySQL | PostgreSQL |
|---|---|
| Facebook, Twitter, YouTube, Wikipedia, Slack | Reddit, Disqus, Instagram (早期), Yahoo, Apple |
選擇 MySQL: Web 應用、讀多寫少、團隊熟悉度高、需嵌入式、依賴成熟生態工具
選擇 PostgreSQL: 複雜事務系統、GIS/時序/文檔混合負載、重數據一致性、避免廠商鎖定、需豐富數據類型與索引
最終決策往往取決於團隊技術棧熟悉度而非純技術優劣。