再见 MySQL!这可能不再是一个哗众取宠的梗了

近年来大家可能都有这样一种感受:与编程语言市场不同,数据库市场的竞争激烈异常——一线的在停滞甚至下坠,二线的正在反超。

有种种迹象表明:MySQL 这个流行榜上的榜一大哥,正在逐渐淡出专业开发者的视野。再见 MySQL,可能不再只是一个哗众取宠的梗了!

麦聪软件,全球领先的 DaaS 厂商,轻量级数据中台领导者。世界 500 强集团中已有 30 多家选用,帮助 400 多家加速企业数字化转型。核心产品麦聪 DaaS 平台包含统一数据管理和统一数据服务两大模块,具备数据集成、数据开发、数据质量、数据服务相关功能。

8 月,StackOverflow 发布的 2022 开发者调查报告中,有这么一组数字:

在专业开发者群体受欢迎排行榜中,PostgreSQL(46.48%)首次超越 MySQL(45.68%)拔得头筹。专业开发者与初学者的不同之处在于,他们更倾向于选择 Redis、PostgreSQL、Microsoft SQL Server 和 Elasticsearch。

初学者群体当中,MySQL 也并不乐观,紧随其后的 MongoDB 位居第二,占比近 1/3。“这很合理,因为它支持大量的语言和应用开发平台。”

值得一提的是,正在使用 MySQL 的开发者同样也在考虑、希望或想要使用别的数据库工作,下图展示了调查结果。

有 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 也就不难理解了。

过去的近 20 年,MySQL 成为构建互联网的基石之一,有无数的开发者为之夜以继日,我们为之赋予应有的荣光。如今,开发者不得不正视 MySQL 的问题:它早已过了体验巅峰的时刻,而是面临停滞甚至下坠感的来袭。

数据库的未来是什么?更稳定,也更动态。Monty 如是说。

向前看,企业和开发者们面临着新的稳定且动态的需求,就不得不拥抱未来,就不得不在某个时刻,喊出那句曾经有些打趣,现在有些“谶语”味道的叹息——再见,MySQL!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这可能是因为您的系统没有安装 MySQL 或者 MySQL 没有被正确配置。您可以尝试安装 MySQL 或者检查您的 MySQL 配置是否正确。如果您需要更多帮助,可以提供更具体的信息,我会尽力帮助您解决问题。 ### 回答2: 系统提示没有mysql这个命令通常意味着该系统中没有安装MySQL数据库软件或者MySQL数据库软件没有正确配置在系统的路径中。 要解决这个问题,可以按照以下步骤操作: 1. 确认MySQL是否已经安装。可以在命令行终端中使用"mysql"命令来检查是否安装。如果没有安装,需要先下载和安装MySQL数据库软件。 2. 如果MySQL已经安装,但仍然提示没有mysql命令,可能是由于MySQL的执行路径没有添加到系统的环境变量中。可以通过以下步骤来添加: a. 打开"控制面板",点击"系统和安全",然后点击"系统"。 b. 点击"高级系统设置",在弹出的窗口中点击"环境变量"按钮。 c. 在"系统变量"下方的列表中找到名为"Path"的变量,选中它并点击"编辑"。 d. 在"变量值"的末尾,添加MySQL的安装路径。例如,如果MySQL安装在"C:\Program Files\MySQL\MySQL Server 8.0\bin"目录下,可以将路径添加为";C:\Program Files\MySQL\MySQL Server 8.0\bin"。 e. 确认更改,关闭所有窗口。 3. 重新启动命令行终端,再次尝试输入"mysql"命令。如果一切顺利,应该能够成功执行该命令并进入MySQL数据库。 如果以上步骤都按照正确操作,但仍然无法解决问题,可能是由于其他原因导致的。这时候可以尝试卸载并重新安装MySQL,或者查找其他解决方案,例如搜索相关错误信息并参考官方文档或在线论坛寻求帮助。 ### 回答3: 系统提示没有mysql这个命令,可能是因为您的计算机上尚未安装或未正确配置MySQL数据库。解决此问题的方法可以参考以下步骤: 1. 首先,您需要确保已经在计算机上安装了MySQL数据库。可以从MySQL官方网站(https://www.mysql.com/)上下载安装程序,并按照安装向导进行安装。 2. 安装完成后,打开命令行终端或命令提示符窗口,尝试输入`mysql`命令,确认是否仍然提示没有找到该命令。 3. 如果仍然提示没有找到`mysql`命令,可能是因为MySQL的安装路径没有被正确地添加到系统的环境变量中。您可以按照以下步骤添加MySQL的安装路径: - 在计算机上找到MySQL的安装目录,一般位于`C:\Program Files\MySQL\MySQL Server X.X`(其中X.X表示MySQL的版本号)。 - 右键点击“计算机”(或“此电脑”),选择“属性”。 - 点击“高级系统设置”。 - 在弹出的窗口中,点击“环境变量”按钮。 - 在“系统变量”部分,找到名为“Path”的变量,双击打开编辑窗口。 - 在编辑窗口的最后,添加MySQL的安装路径,以分号(;)分隔其他路径。 - 点击“确定”保存更改,并关闭所有窗口。 4. 关闭命令行终端或命令提示符窗口,重新打开一个新的窗口,尝试输入`mysql`命令,确认是否能够成功执行。 如果您仍然遇到问题,可能需要参考MySQL的官方文档或寻求专业人士的帮助来解决该问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值