認為PostgreSQL好的論據:
更嚴格的SQL標準遵循性: PostgreSQL對SQL標準的執行更為嚴格。
更高級的存儲過程: 原生執行計劃緩存帶來更優的存儲過程支持。
優化的連接和查詢: 強大的表連接支持、高效的優化器、多種索引類型(B樹、哈希、GIN、GiST)以及出色的復雜查詢處理能力。
堆表用于擴展: 使用堆表(與MySQL的索引組織表相比),能夠處理更大規模的數據集。
物理復制: 基于WAL的物理復制在一致性、性能和資源利用率方面優于MySQL的binlog邏輯復制。
無鎖定開銷: 避免了MySQL的可插拔存儲引擎帶來的復雜性(例如,InnoDB鎖爭用)。
云原生優勢: 與Supabase無縫集成,輕松實現云端部署。
認為MySQL好的論據:
高效的MVCC: InnoDB的回滾段MVCC避免了PostgreSQL基于XID的清理開銷(無表膨脹或真空鎖)。
主鍵操作速度快: 索引組織表擅長主鍵的增刪改查操作。
輕量級優化器: 簡化的優化器、系統表和運算符,適用于快速簡單的查詢。
可擴展的分區: 相比PostgreSQL基于繼承的分區方法,更好地處理數千個分區。
靈活的存儲引擎: 可插拔引擎(例如,用于OLTP的InnoDB、用于讀密集型負載的MyISAM)。
成本更可控: Supabase/PostgreSQL云端成本可能大規模增長,而MySQL自托管更經濟實惠。
其實,PostgreSQL和MySQL都只是工具。選擇適合你項目的工具即可。