MySQL8与PG10:新版本下的较量谁更胜一筹?

随着MySQL8和PostgreSQL10的发布,两大开源数据库之间的差距显著缩小。MySQL8新增了公共表表达式(CTEs)和窗口函数等功能,使得其在分析能力上接近PostgreSQL10。同时,PostgreSQL10引入的逻辑复制功能增强了其灵活性和易用性。两者的特性和功能现在更加一致,选择哪个数据库更多取决于生态系统的成熟度和治理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

既然MySQL 8和PostgreSQL 10已经发布了,现在是时候回顾一下这两大开源关系型数据库是如何彼此竞争的。

在这些版本之前,人们普遍认为,Postgres在功能集表现更出色,也因其“学院派”风格而备受称赞,MySQL则更善长大规模并发读/写。

但是随着它们最新版本的发布,两者之间的差距明显变小了。

特性比较

首先来看看我们都喜欢谈论的“时髦”功能。

特性MySQL 8PostgreSQL 10
查询 & 分析

公用表表达式 (CTEs)New 
窗口函数New 
数据类型

JSON支持Improved 
GIS / SRSImproved 
全文检索  
可扩展性

逻辑复制 New
半同步复制 New
声明式分区 New

过去经常会说MySQL最适合在线事务,PostgreSQL最适合分析流程,但现在不是了。

公共表表达式(CTEs)和窗口函数是选择PostgreSQL的主要原因。但是现在,通过引用同一个表中的boss_id来递归地遍历一张雇员表,或者在一个排序的结果中找到一个中值(或50%),这在MySQL上不再是问题。

在PostgreSQL中进行复制缺乏配置灵活性,这就是Uber转向MySQL的原因。但是现在,有了逻辑复制特性,就可以通过创建一个新版本的Postgres并切换到它来实现零停机升级。在一个巨大的时间序列事件表中截断一个陈旧的分区也要容易得多。

就特性而言,这两个数据库现在都是一致的。

不同之处

现在,我们只剩下一个问题——选择这一个而不选另一个的原因是什么呢?


生态系统是其中一个因素。MySQL有一个充满活力的生态系统,包括MariaDB、Percona、Galera等等,以及除了InnoDB以外的存储引擎,但这也可能会令人困惑。Postgres的高端选择有限,但随着最新版本引入的新功能,这个情况会有所改变。

治理是另一个因素。当Oracle(或最初的SUN)收购MySQL时,每个人都担心会毁掉这个产品,但在过去的十年里,这并不是事实。事实上,在收购之后,MySQL的发展反而加速了。而Postgres在工作管理和协作社区方面有着丰富的经验。

基础架构不会经常改变,虽然最近没有对这方面的详细讨论,但这也是值得再次考虑的。

原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值