你知道MySQL如何赶上PostgreSQL?

数据库 MySQL
MySQL是通过GPLv2和商业许可证进行双重许可的,用户可以选择在GPLv2下使用MySQL,这要求所有基于MySQL的修改和衍生作品也必须开放源代码。不过,用户也可以购买Oracle提供的商业许可证,这样就可以在不公开源代码的情况下进行商业化。

Percona最近发表了一篇文章,替MySQL出谋划策,期待赶上PostgreSQL,不过Percona本身就存在利益相关,所以大家批判性理解,我根据自己的理解做了点改动。

图片图片

1.所有权和治理

MySQL相比PostgreSQL不是开源社区驱动的,早期MySQL还是很重视社区并获得了信任,所以大公司也并不并不将其视为威胁。但到了Oracle收购MySQL后,情况就变化了,大公司特别是云服务提供商,将Oracle视为竞争对手,他们不可能给MySQL贡献代码。

而PostgreSQL由社区运营,PostgreSQL基金会是一个非营利组织,所有公司在PostgreSQL生态系统中都是平等的,贡献给PostgreSQL不会为竞争对手创造价值,社区在PostgreSQL项目方向上有更大的影响力,数百家小公司使PostgreSQL在全球范围内无处不在。

针对MySQL来说,社区能做到不多,因为决策来源于Oracle,他们更关注利润,而不是为了扩大市场规模。

2.License

MySQL是通过GPLv2和商业许可证进行双重许可的,用户可以选择在GPLv2下使用MySQL,这要求所有基于MySQL的修改和衍生作品也必须开放源代码。不过,用户也可以购买Oracle提供的商业许可证,这样就可以在不公开源代码的情况下进行商业化。

以AWS Aurora来说,作为一个兼容MySQL的成功衍生版本,AWS可以基于MySQL的源代码创建自己的版本并进行商业化,但这通常是在云服务的形式下进行的,并不需要开放源代码给客户,而是将其作为服务提供。

而PostgreSQL则通过非常宽松的PostgreSQL许可证进行许可,所有人可以轻松地创建商业许可的PostgreSQL衍生版本或将其嵌入到商业许可的项目中,对于推广PostgreSQL非常有益。

对于Oracle肯定还会坚持双重许可,虽然市面上也有“Cloud Only”和“Open Core”这样的商业模式取得了成功,但对于Oracle来说,双重许可的模式更为直接。

3.社区

社区分三方面,比如对于我来说,就是用户社区的一份子,专注于使用,这方面MySQL的基数还是很不错的,但越来越多的新应用选择使用PostgreSQL。

贡献者社区,这方面PostgreSQL的贡献者社区更加强大,因为它有很多组织参与,而不是仅仅依靠一家公司,他们会定期举办各类的活动进行贡献,另外PostgreSQL的扩展属性也更容易方便开发者对其进行贡献。

供应商社区,这方面MySQL就比较薄弱了,因为帮助推广MySQL可能最终只是在为Oracle创造价值。

对于MySQL来说,Oracle可以主动与潜在的贡献者交流,举办一些活动,让外部贡献者参与,分享他们的计划,并支持与MySQL社区发展方向一致的贡献工作。

4.架构

PostgreSQL被设计为可扩展的,拥有大量强大的扩展,而MySQL的扩展能力则相对有限,这种可扩展性使得PostgreSQL的创新变得更加容易。

但对于MySQL来说,选择了不一样的模式,可扩展可能并不是他的有些选项。

5.开源产品的动力

选择数据库是一项长期的赌注,因为更换数据库并不容易,选择数据库的时候比如考虑未来,思考随着时间的推移,你选择的数据库会满足未来的需求吗。

对于Oracle来说,已经将许多开发重点转向专有和云专属的MySQL版本,不会太考虑MySQL社区,这就是他的模式。

那社区能做什么呢?

这里重点提到了,Percona Server for MySQL,他是一个完全兼容MySQL的开源替代方案来替代MySQL,直白点就是fork版本,核心是兼容性,为了避免与上游(Oracle)的合并成本过高。

那MariaDB怎么样呢?他走的路是完全和Oracle MySQL分割,倡导创新,每个新版本和MySQL的偏离程度也越来越大。

MariaDB则做出了不同的权衡;无限制的创新使其与MySQL的兼容性降低,每个新版本的偏离程度也越来越大。

6.MariaDB

MariaDB开始也是由MariaDB基金会管理,但他是有缺陷的,尤其是在知识产权(IP)方面,特别是商标方面,它没有拥有所有的知识产权,还是由一家公司(MariaDB公司)控制,存在存在商标垄断的问题,和PostgreSQL的社区模式完全不一样,并非“人人平等”。

目前MariaDB被K1公司收购,这为MariaDB的治理和商标所有权的变更提供了机会,使其更加接近PostgreSQL的模式,但估计不会成为现实。

虽然MariaDB基金会可以给MariaDB进行更名获取完全的控制,但失去了MariaDB的品牌,就等于失去了知名度。

既然说了那么多,percona为什么不走MariaDB早期设想的那条路呢?我个人觉得发不了大财,那就发点小财?

参考:https://www.percona.com/blog/how-can-mysql-catch-up-with-postgresqls-momentum/

责任编辑:武晓燕 来源: 虞大胆的叽叽喳喳
相关推荐

2024-05-31 08:58:12

2016-09-19 13:52:26

Javascript跨域前端

2018-04-04 12:05:04

Postgre数据planner

2024-10-15 10:41:04

PostgreSQL数据库字符串

2022-06-29 08:32:04

游标MySQL服务器

2021-02-19 07:59:21

数据埋点数据分析大数据

2024-09-09 10:59:31

PostgreSQL数组代码

2016-06-29 13:54:58

云计算人工智能

2021-03-04 23:11:59

环境变量Python

2017-10-16 13:45:04

2011-12-12 17:30:45

2022-07-05 10:06:55

PostgreSQLMySQL数据库

2023-06-08 07:48:03

Java线程池

2024-07-08 00:00:01

多线程ThreadC#

2023-01-13 17:02:10

操作系统鸿蒙

2023-03-21 07:39:51

CentOS挂载硬盘

2017-12-28 15:26:37

2020-04-14 16:26:22

MySQL线程同步

2019-08-29 09:10:45

MySQLSQL数据库
点赞
收藏

51CTO技术栈公众号