8 月,StackOverflow 发布的 2022 开发者调查报告中,有这么一组数字:
在专业开发者群体受欢迎排行榜中,PostgreSQL(46.48%)首次超越 MySQL(45.68%)拔得头筹。专业开发者与初学者的不同之处在于,他们更倾向于选择 Redis、PostgreSQL、Microsoft SQL Server 和 Elasticsearch。
初学者群体当中,MySQL 也并不乐观,紧随其后的 MongoDB 位居第二,占比近1/3。“这很合理,因为它支持大量的语言和应用开发平台。”
值得一提的是,正在使用 MySQL 的开发者同样也在考虑、希望或想要使用别的数据库工作,下图展示了调查结果。
千万级数据并发如何处理?进入学习
图源:StackOverflow
有 11185 名 MySQL 开发者想使用 PostgreSQL 工作,以及 9520 名 MySQL 开发者想使用 MongoDB 工作。
不止 StackOverflow 的报告,根据最新的 10 月 DB-Engines 流行趋势上看,也可以看见 MySQL 的受欢迎程度已经连续几年呈现下滑趋势。
图源:DB-Engines
可以判断,如果不出意外,同样在开源关系型数据库之列的 PostgreSQL ,超越 MySQL 只是时间的问题。
1.MySQL 在停滞
作为“王者”,MySQL 的荣耀之冠是在互联网爆发的年代加冕的。在过去的 20 年间,规模和效率成为了互联网扩张的不宣的“要义”。
经过发展与迭代,将数据库单纯作为存储,把计算任务交给业务服务器,这种逻辑部署实施起来更为便捷。企业和工程师们纷纷认可了“Linux+Apache+MySQL+PHP”,“LAMP”顺理成章地成为了互联网开发的标杆模式。
彼时刚刚诞生不久的 MySQL,面向“简单派”互联网而生的简约风格,正逢其时。虽然从功能上看,MySQL 并不如其他数据库占优势,但反而因为没有提供很多高级功能,使得简单易用、开源免费的 MySQL,一举博得了国内包括腾讯、阿里巴巴这些后来成为巨头的互联网公司的好感,成为了早期互联网 OLTP 领域事实上的标准。而相较之下,一直走“学术派”路线的 PostgreSQL 一直不温不火。
2009 年,是 MySQL 迎来命运转折点的一年,甲骨文对刚刚买下 MySQL 的 SUN 出手了。甲骨文面对 MySQL 的兴起,不得不说此举意在采取收购的策略来守好 Oracle 这个大型商业数据库的护城河。随后,甲骨文就开始了涨价的套路:大幅抬高了 MySQL 的商业版价格。
同使用 MySQL 免费版本的开发者们一样,MySQL 创始人 Monty 对其前途感到忧心忡忡,他义愤填膺,却又无可奈何。
即便时隔十数年,Monty 仍对此事挂怀,MariaDB 就是最好的证明。
回过头来看,我们看 MySQL 的兴起与流行,永远离不开时代语境。正如 Monty 所言:
MySQL 的成功是与时代背景分不开的。当时互联网已经得到广泛认可,每个人都需要这样的数据库,用它创建互联网所需要的数据。彼时的技术巨头对于互联网持观望态度,所以这是个有待开发的蓝海市场。
2.停滞的背后
当蓝海变红,为互联网而生的 MySQL 似乎也迎来了停滞时刻。虽说热度不减,但与同时代关系型数据库的竞争者 PostgreSQL 逆势而上的受欢迎程度相比,难免不会让人担忧。
细究之下,大概有这么几点原因:
首先,被收购之后,MySQL 的开源精神内核被大打折扣。沦为被收购的“后儿子”,不可避免成为边缘的角色。
据 Monty 回忆,“在甲骨文宣布要收购 Sun 和 MySQL 的时候,我就不相信他们会真正发掘 MySQL 这份宝贵遗产,所以不少优秀的程序员与我们决定一起离开,延续 MySQL 的精神。”
同时,因为 MySQL 而加入到甲骨文的优秀员工,同样得不到足够的资源和重视。
去年 12 月,Oracle 公司前首席软件工程师、MySQL 优化器团队成员 Steinar Gunderson 离职,他对自己付诸 5 年心血的 MySQL 来了一通回踩:“你能做的也只有这么多。我和团队其他人所做的改变使得 MySQL 优化器朝着21世纪初期设计的方向发展,并进行了一些不错的调整,但这也是它的终点了。”无论公司内部如何吹嘘,Gunderson 都无法相信 MySQL 会变成一个有竞争力的产品。
可能于甲骨文 MySQL 优化团队成员而言,缺少了前进的想象空间,是难以言表的痛处。甲骨文当然也有对 MySQL 花费了精力,但诸如微软 Oracle 云,进行在线分析处理能力之类的缝缝补补的“操作”,离真正的开源数据库贡献者的理想有很大差距。
总之,甲骨文收购 MySQL 也许不会停止对于它的研发,但却已经大大消磨了开发社区的热情。
其次,数据库发展的上下文已经发生了改变,MySQL 的高光窗口期可能真的迎来了终章。如前文所说,MySQL 为当时新的网络而生,各大网站、移动端的发展也到了难以逾越的节点。如今,我们看到行业的发展开始向金融、电信、物联网、零售、制造等传统行业倾斜,这些行业与二十年前的互联网相比,更加注重数据可靠性、安全性、规范性。这些都不是 MySQL 所擅长的。
还有一点,疫情以来,企业基础设施的现代化要求加速提上议程,旨在让企业更加灵活,并对快速变化的客户需求做出反应。而承担这些项目的全球系统集成商们,往往选择应用最容易部署的技术,从而为其服务带来最佳利润,而这显然 MySQL 并不在列,原因很简单,MySQL 是需要付费的,且 MySQL 对于多语言的支持明显存在自身的瓶颈。
最后,竞品环伺,单就关系型数据库而言,其市场也在发生明显变化。2014 年起,PostgreSQL 迎来复兴时刻,技术分析师将原因可以归结为四点:丰富的功能集、极易扩展、开源、更好的开源许可证。笔者看来最后一点至关重要。更好的开源许可,背后的意义重大。开源合作的规模越大,每个人获益就越多。这也是开源精神的核心所在。
PostgreSQL 采用类似 MIT 的许可协议,允许开发人员做任何事情,包括在开源或闭源产品中商用,而 MySQL 的客户端遵循 GPL 许可协议,所以开发人员必须向 Oracle 付费或者将自己的应用程序开源。从这个层面讲,不管出于商用还是其他,PostgreSQL 都是最有利的选择。
3.走学院派路线的 PostgreSQL
在下一个突破口来临之前,MySQL 不会更加流行。然而在这之前,PostgreSQL 的二度崛起也只是时间问题。
就在 MySQL 发布不到 14 个月后,PostgreSQL 诞生了。它是由 PostgreSQL Global Development Group 开发的高级开源 RDBMS,它最初于 1996 年 7 月 8 日发布,于 1986 年作为 POSTGRES 项目的一部分在美国加州大学伯克利分校启动。
PostgreSQL 诞生之初,就被开发者视为“设计理念严谨”的“学院派”。用现在流行的说法:MySQL 是为了解决某个业务问题的互联网野路子,而 PostgreSQL 做的是“以一打十”的“全栈数据库”。
天生就是一个超融合的系统、成熟、设计精良、专业而包容的社区,PostgreSQL 非常有底气地标榜自己是“世界上最先进的开源关系型数据库”,数据分析,时序插件,全文搜索,架构和功能等等方面样样在行。
前面我们从开源热情、行业发展、商用的角度分析了 MySQL 停滞的原因。这里我们以开发者的视角,具体列举一些 PostgreSQL 的好处:
支持多种可用于商业解决方案的性能优化,包括地理空间数据支持、无读锁并发等,被广泛应用于大型系统;
对于需要执行复杂查询的系统最为有利;
在商业智能应用程序中表现良好,更适合需要快速读/写速度的数据分析和数据仓库应用程序,因此,它也适用于 OLTP/OLAP 系统;
可以在单个产品中存储结构化和非结构化数据类型,它支持大多数数据类型,比如对 JSON 的支持。多年来 PostgreSQL 的最大创新之一是在其 PostgreSQL 9.2 中引入了生成 JSON 数据功能。
功能强大也许并不是流行的理由。但开发者的喜好发生了变化却是真是的。
比如,专注软件开发者的行业分析公司 Redmonk 分析师 James Governor 提到,“目前开发者们有一些 NoSQL 和大数据的疲劳”,因此,开发人员开始使用久经考验的 PostgreSQL 作为 MongoDB 和 Apache Cassandra 的可行替代方案,用于一些关键工作负载。
另外,云计算公司 Joyent 的解决方案工程总监 Elijah Zupancic 也提到了文档的重要性,“PostgreSQL 也得到了开发者的认可,从他们的角度来看,使用它是一种乐趣,其文档很精彩,数据类型反映了开发人员的工作类型。”
PostgreSQL 不依赖任何单一供应商。单一商业供应商将永远无法跟上开源项目在文档更新等层次上所能提供的变化速度。
4.简单、容易压倒一切
回顾 MySQL 的发展,因互联网而生,也成就了互联网。那个年代,“简单”、“容易”压倒一切。技术日新月异,但这种背后的逻辑,放到现在依旧适用。
PostgreSQL 可能不是最佳的选择,但对于企业决策者而言,它是最便捷容易的那个。企业内部的种种已经习惯了关系数据库,如果想要放弃昂贵的商业数据库的管理者而言,PostgreSQL 是一个“简单的按钮”。
正如 EDB 首席执行官 Ed Boyajian 提到的,大多数公司都不想提升和改变,但他们正在使用 PostgreSQL 作为他们的绿地,因为他们已经拥有内部的 SQL/关系型技能,这些技能是在使用 Oracle、SQL Server 和 DB2 的几十年中积累起来的。
5.再见,MySQL!
说到底,MySQL 已经完成了构建互联网的使命,因为它的简单上手;而随着新的企业发展命题的提出:将传统行业进行数字化转型,这就包含“升级基础设施”、“上云”、“上物联网”等若干子命题,MySQL 的弊端凸显,这就不是 MySQL 能轻松搞定的范畴了。不管是集成商还是开发者,选择更为成熟严谨、设计精良、更容易成功的 PostgreSQL 也就不难理解了。
图源:StackOverflow
过去的近 20 年,MySQL 成为构建互联网的基石之一,有无数的开发者为之夜以继日,我们为之赋予应有的荣光。如今,开发者不得不正视 MySQL 的问题:它早已过了体验巅峰的时刻,而是面临停滞甚至下坠感的来袭。
数据库的未来是什么?更稳定,也更动态。Monty 如是说。
向前看,企业和开发者们面临着新的稳定且动态的需求,就不得不拥抱未来,就不得不在某个时刻,喊出那句曾经有些打趣,现在有些“谶语”味道的叹息——再见,MySQL!
发表评论 取消回复