国产数据库发展十策(三):是走 MySQL 路线还是 PostgreSQL 路线?
Editor's Note
《坛经》有云:“时有风吹幡动。一僧曰风动,一僧曰幡动。议论不已。惠能进曰:‘非风动,非幡动,仁者心动。’”而今开源路线的选择,MySQL 可,PostgreSQL 亦可,然核心在于自主可控。只要掌握核心能力,才能走上快速发展创新超越之路。
The following article is from 数据和云 Author eygle
国产数据库的发展中,毫无疑问,通过借鉴先行者的经验,我们可以获得一定的后发优势。经过四十年的探索,国产数据库形成了三大源头:购买闭源代码吸收,依托开源代码迭代,自主研发从头开始。而在开源产品的基础上迭代,又以 MySQL 和 PostgreSQL 居多,那么到底这两条技术路线哪一条更值得长期投入和用户选择呢?
MySQL 和 PostgreSQL 孰强孰弱?
他还精确的指出了 MySQL 的本质问题:“MySQL 是款超烂的数据库,强烈建议大家认真考虑转用 PostgreSQL。
MySQL is a pretty poor database, and you should strongly consider using Postgres instead.使用 MySQL 就像走进了一个平行宇宙,这里有很多人都由内而外笃信着 MySQL 就是最先进的数据库产品。但我不行,我的工作经常需要向观众们讲解优化器的内部工作原理,所以我特别能感受到 MySQL 的种种设计是多么原始。
无论你怎么看,在 Oracle 下的 MySQL 一直没有‘掌舵人’,在内部几乎快被抛弃。
一款缺少掌舵人的数据库,很难被认为是”有灵魂“的。
更令人震惊的是那些坚持认为一切都很好的人(似乎大多数 MySQL 用户和开发人员并没有真正使用其他数据库)。
这是我深有同感的一点,很多人都旗帜鲜明的声称,某某数据库是宇宙中最好的数据库,但是他们甚至对其他数据库一无所知或满怀偏见。
国产数据库和 MySQL、PostgreSQL 的渊源
国产数据库和 MySQL
GPL协议保障 MySQL 持续开源,满足信创自主安全可控目标,相较于其他数据库,在稳定可靠,持续创新,拥抱开放方面,有着独特的价值优势,充分利用自由开源软件,实现我国信息化产业的独立自主目标。目前在我国信创名单中的数据库厂家中,有多家数据库产品均和原生 MySQL 兼容。
openEuler 是一款开源操作系统,内核源于 Linux…基于 Linux 遵循 GPL 开源许可的“传染性”,openEuler 以及其商业发行版同样遵循 GPL 开源协议。普华基础软件、麒麟软件、中科院软件所、拓林思等越来越多的操作系统厂商发布了基于 openEuler 的商业发行版。
这篇文章传达的用意非常明确,探讨了操作系统的 GPL 协议遵从,那么数据库呢?
国产数据库和 PostgreSQL
GPL 、BSD 和 木兰协议
BSD 协议
在此允许为任何目的使用、复制、修改和分发本软件及其文档,无需付费,也无需书面协议,但上述版权声明和本段及以下两段应出现在所有副本中。在任何情况下,加利福尼亚大学都不对任何一方因使用本软件及其文件而造成的直接、间接、特殊、偶然或间接的损害负责,包括利润损失,即使加利福尼亚大学已被告知这种损害的可能性。加利福尼亚大学特别声明不提供任何保证,包括但不限于适销性和适用于特定目的的隐含保证。此处提供的软件是以 "现状 "为基础,加利福尼亚大学没有义务提供维护、支持、更新、增强或修改。
GPL 协议
1. 可自由修改
如果你想添加或删除某个功能 或者 在别的项目中使用部分代码,没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
2. 可用来盈利
你可以在分发软件的时候收费,但必须在收费前,向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。开源协议众多,下图对不同开源协议做了一个很好的展开说明:
木兰协议
开源本质上也是一种商业模式,自由分发只是其手段之一,不同时期形成的不同开源协议,以不同方式成就了开源世界,最终形成了今天开源软件的格局。每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。
国产数据库的选择和发展
开源成为趋势
选择 MySQL 还是 PostgreSQL 路线?
无论是基于 MySQL 还是基于 PostgreSQL 来进行迭代演进,都是站在前人积累的肩上,了解了这一事实,也就能够清楚事物的本质。《坛经》有云:“时有风吹幡动。一僧曰风动,一僧曰幡动。议论不已。惠能进曰:‘非风动,非幡动,仁者心动。’”而今开源路线的选择,MySQL 可,PostgreSQL 亦可,然而核心在于自主可控。只要掌握了核心能力,能够走上快速发展创新超越之路,就是正确之路。遵循基本的开源许可证原则,那么 MySQL 还是 PostgreSQL 作为起点,也就非常清晰了:1. 如果选择一个开源产品,进行闭源商业化,那么请选择 PostgreSQL;2. 如果选择一个开源产品,开源迭代,那么 MySQL 和 PostgreSQL 都可以。这也是为什么有很多商业数据库是基于 PostgreSQL 开发的根本原因,国内外基于 PostgreSQL 所推出的产品都很多,但是受限于开源协议,基于 MySQL 的商业数据库就不多见。在 Database of Database 网站上还列出来数据库的血脉,以下列出的就都是基于 PostgreSQL 开发的产品:
自主研发和硬核实力
我非常赞同周老师的观点,既然是硬核科技就不能软着来。既然国产数据库要具备国际视野、参与国际竞争,就要努力在核心技术方面进行突破,既然已经走过了捷径,就应该回过头来苦练内功。在2021年国产数据库流行度排行榜上,积分规则上增加了 专利 和 论文 两个维度,就是希望通过更加”硬核“的指标,来量度数据库产品的内核能力,我们只有在基础研究、核心算法上不断突破进取,才有可能在在国际舞台上站稳身影。目前 openGauss / GaussDB、达梦、GBase 的专利数量名列前茅。1.有成功的应用,有成体系的技术,再加上在这两者基础上抽象出来的概念和理论,方可称为“硬核”。2.从这个意义而言,数据库是典型的硬核科技。想要做硬核的事,从应用到技术再到理论是正道,反过来是捷径。应用、技术和理论三者联动才是创新之道。3.上世纪八、九十年代是数据库产业和学术大发展的时期,系统方面有Oracle、Db2这样的产品。理论方面完善了关系数据库、事务处理、基准评测试等。我们错过了这个时代,当然就无法实现数据库的全方位进步。
形成合力快速突破
PostgreSQL 之 openGauss 根生态
MySQL 之 openMySQL 根生态如何建设?
唯有真正掌握,自由发展,才有可能走上创新超越之路。In 2016, at MariaDB, we completely abandoned MySQL code, and brought in new storage engines, dialects, monitors, even ML-based workload analysis.
2016年,在MariaDB,我们完全放弃了MySQL代码,并带来了新的存储引擎、方言、监控器,甚至基于ML的工作负载分析。
如何构建根生态?
MySQL 的 GPL 协议要求后续的强制开源,确保了开源生态的活跃性和广泛参与,最大程度的避免了社区的分裂,所有的智慧贡献得以全球共享。 PostgreSQL 的 BSD 协议,孵化了大量商业数据库产品,催生了各种形态的数据库创新,培养了大量的 Pg 内核研发人才。
策三:众智合力打造国产数据库根生态
参考资料
GPL协议保障MySQL的自由免费开放 如何选择开源许可证? 对话周傲英:数据库人的切肤之痛 Leaving MySQL MySQL a ‘pretty poor database’ says departing Oracle engineer
❤️ 欢迎关注我的公众号,来一起玩耍吧!!!
❤️ 欢迎关注我的公众号,来一起玩耍吧!!!
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————
Oracle 表碎片检查及整理方案
2021 年公众号历史文章合集整理
2020 年公众号历史文章合集整理
我的 2021 年终总结和 2022 展望
Oracle 查询表空间使用率超慢问题一则
国产数据库|TiDB 5.4 单机快速安装初体验
Oracle ADG 备库停启维护流程及增量恢复
Oracle 19c 使用数据泵如何导入导出 PDB 用户
点个“在看”
你的喜欢会被看到❤