数据库比较
MySQL 与 PostgreSQL:各胜一方
MySQL 和 PostgreSQL 已经相互纠缠了二十年,诚实的总结是工作负载决定的:MySQL 在共享托管生态系统、副本扇出简单性和 CMS 兼容性占主导地位方面获胜,而 PostgreSQL 在正确性、更丰富的类型、分析查询和 JSONB 驱动的文档处理方面占主导地位。 MySQL 8.0 弥补了大部分功能差距(窗口函数和 CTE 于 2018 年推出),其复制故事仍然是开源数据库中摩擦最小的东西。 PostgreSQL 的类型系统、严格的 ANSI 行为和事务性 DDL 使其成为必须在十年内信任模式的默认值。托管现实仍然会在 MySQL 上带来更多安装,而招聘池通常会决定胜负。
要点
- 正确性:PostgreSQL 的事务性 DDL、更严格的类型和可预测的规划器使其成为架构必须多年可信的系统的默认值。
- 生态系统:MySQL 的共享托管现实、cPanel 时代的工具和 CMS 优先原则仍然每月带来更多的首日安装。
- 复制:MySQL 的异步复制仍然是开源中摩擦最小的扇出,它托管运营团队的规模。
- 功能关闭:窗口函数和 CTE 登陆 MySQL 8.0,缩小了曾经默认倾向于 PostgreSQL 的分析差距。
- 文档处理:带有 GIN 索引的 PostgreSQL JSONB 在模式灵活负载的表达能力和性能方面优于 MySQL 的 JSON。
- 招聘和工具:名义上两者都很丰富; MySQL 在托管领域的普遍性仍然经常决定团队的配合关系。
- 版本控制风险:MariaDB 2009 年的分叉分裂了“MySQL”世界,因此在决策中命名确切的引擎和版本在今天比命名品牌更重要。
- 升级:PostgreSQL 的重大升级历来读起来像是经过深思熟虑的重新规划; MySQL-config 就地升级沿袭使其最大的版本跳跃感觉就像事件一样。
一线手记
我们在 MySQL 和 PostgreSQL 之间拆分了一个产品的双临时服务器,引擎的重要性不如团队在模式迁移方面的纪律。复制简单性仍然使运维人员倾向于 MySQL;正确性使下一个产品倾向于 Postgres。
常见问题
新的网络应用程序应该选择哪个?
PostgreSQL 提供正确性和长期模式可信度,MySQL(或 MariaDB)提供托管生态系统兼容性;两者都是可信的默认值。
MySQL 更快吗?
旧的概括误导:凭借可重复读取的习惯和某些简单的工作负载,MySQL 常常获胜; PostgreSQL 通常会处理分析负载、并发负载或 JSON 负载。对您的查询进行基准测试,而不是民间传说。
MariaDB 与 MySQL 对比如何?
这是一个单独的分支问题:MariaDB 在 2009 年离开了 MySQL 的发布节奏,并且它们之间的差距每年都变得更加实际;明确命名引擎。
哪个更容易操作?
MySQL 边缘复制简单性; PostgreSQL 优势备份和恢复简单性;两者都是诚实的、由小团队维护和操作的。
Kinetikatech 如何在数据库比较方面为您提供帮助
说实话,很多团队都是自己先试过才来找我们:用于托管工作负载的数据库引擎选择,在正确性保证、操作权重和实际成本方面进行比较:嵌入式引擎与服务器、MySQL 与 PostgreSQL、SQL 与文档存储,以及不断出现的遗留案例研究。我们的服务器管理和网站速度优化服务就是为了让您不必在数据库比较上交学费:部署、值守与凌晨 3 点的突发状况,都由我们负责。