既然MySQL 8和PostgreSQL 10已經發布了,如今是時候回顧一下這兩大開源關係型數據庫是如何彼此競爭的。數據庫
在這些版本以前,人們廣泛認爲,Postgres在功能集表現更出色,也因其「學院派」風格而備受稱讚,MySQL則更善長大規模併發讀/寫。併發
可是隨着它們最新版本的發佈,二者之間的差距明顯變小了。函數
特性比較排序
首先來看看咱們都喜歡談論的「時髦」功能。遞歸
特性 | MySQL 8 | PostgreSQL 10 |
查詢 & 分析 | ||
公用表表達式 (CTEs) | New | |
窗口函數 | New | |
數據類型 | ||
JSON支持 | Improved | |
GIS / SRS | Improved | |
全文檢索 | ||
可擴展性 | ||
邏輯複製 | New | |
半同步複製 | New | |
聲明式分區 | New |
過去常常會說MySQL最適合在線事務,PostgreSQL最適合分析流程,但如今不是了。事務
公共表表達式(CTEs)和窗口函數是選擇PostgreSQL的主要緣由。可是如今,經過引用同一個表中的boss_id來遞歸地遍歷一張僱員表,或者在一個排序的結果中找到一箇中值(或50%),這在MySQL上再也不是問題。同步