0

0

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

青灯夜游

青灯夜游

发布时间:2022-11-09 10:04:03

|

2322人浏览过

|

来源于51CTO技术栈

转载

近年来大家可能都有这样一种感受:与编程语言市场不同,数据库市场的竞争激烈异常——一线的在停滞甚至下坠,二线的正在反超。有种种迹象表明:mysql 这个流行榜上的榜一大哥,正在逐渐淡出专业开发者的视野。再见 mysql,可能不再只是一个哗众取宠的梗了!

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

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

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

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

1.png
图源:StackOverflow

有 11185 名 MySQL 开发者想使用 PostgreSQL 工作,以及 9520 名 MySQL 开发者想使用 MongoDB 工作。

不止 StackOverflow 的报告,根据最新的 10 月 DB-Engines 流行趋势上看,也可以看见 MySQL 的受欢迎程度已经连续几年呈现下滑趋势。

2.png
图源: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 所擅长的。

PHP+access企业网站管理系统 终结版
PHP+access企业网站管理系统 终结版

先大概介绍下 系统是PHP+ACCESS 方便那些买不起MYSQL空间的人 同时我个人认为,企业网站 用PHP+ACCESS就够了 不用太浪费资源 而且PHP+ACCESS性能也不会太差,对企业网站来说执行速度也可以 再个成本低 本人没对它做前台 呵呵 .. 我想 大家不会懒 到这步,有后台了前台还要我这把老骨头一手弄完是不? 到时候留给大家自己创新空间 编辑器是FCKEDITOR 2.6.5 支

下载

还有一点,疫情以来,企业基础设施的现代化要求加速提上议程,旨在让企业更加灵活,并对快速变化的客户需求做出反应。而承担这些项目的全球系统集成商们,往往选择应用最容易部署的技术,从而为其服务带来最佳利润,而这显然 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 也就不难理解了。

3.jpg
图源:StackOverflow

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

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

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1068

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

339

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

380

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1967

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

379

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1519

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

585

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

438

2024.04.29

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

48

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.4万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 842人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号