认为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都只是工具。选择适合你项目的工具即可。