解读JetBrains 2023年开发者生态报告,MySQL仍是全球数据库顶流 | StoneDB数据库观察 #11

作者:宇亭

最近,全球知名的开发者工具公司 JetBrains 对外发布了《2023 年开发者生态系统报告》,报告的具体内容,前几天已经有中文互联网的媒体解读了,由于我们是做数据库的,所以自然而然想要特别关注一下数据库的情况------结果在意料之中,MySQL 在全球范围内仍是最流行的数据库。当然,只讲这个大家都知道的结果没啥意思,我们还是想来分享一下 JetBrains 的洞察总结以及我们的一些看法。

该调研报告显示, 2023 年的 MySQL 依然占据全球第一。

先给读者介绍一下报告的背景:第一在于调研的发起方,JetBrains,相信正常接触过开发工具的同学们都不陌生,甚至有很多开发同学喜欢把 JetBrains 的全家桶下载装到电脑上的(虽然并不一定全都用得上~),总之,这家公司的调研相比媒体机构来说,更有垂直度和代表性,因为调研的用户基本上都是实打实的一线开发者;第二在于调研的数据基础,官网显示,今年的报告汇聚了全球 26348 位开发者的洞察,要知道,全球最大的 IT 技术问答社区之一 StackOverflow 在去年的开发者调研问卷中也才收集到七万多名用户的调研数据,而单纯作为一个开发工具公司来说,JetBrains 能收集到两万多名开发者的调研数据,这个数据量已经相当不错了。当然,并不是所有研发人员都会使用 JetBrains 的开发软件或者参与他们的调研问卷,不过,这份报告的结论对于全球开发者的洞察依旧有非常高的参考价值。

开源篇

按照惯例,一份面向开发者的调研报告里,如果没有提到开源,一定是不够全面的,包括我们作为国内本土发展起来的开源社区,其实也比较关注国际上的开源态势,到底是咱们内部开源自嗨还是全世界都在大力投入开源呢?这个问题,饱受争议,笔者认为还是需要用客观数据来说话。JetBrains 的这份报告非常长,关于开源的部分被放到"General Development Trends"(开发者通用趋势)这个章节中。

报告显示:有41%的受访者为开源做出过贡献,20%或多或少定期做出贡献。即便选择了"否"的开发者中也有大多数开发者表示愿意参与开源项目(45%)。这个结论还被 JetBrains 当作今年报告的亮点放在报告首页。

而在不同国家地区的受访者统计中,中国大陆有 52% 的开发者在为开源项目做出贡献,而位列第一、第二的是美国和德国。足以可见,开源的趋势不是只在国内如火如荼,发达国家其实依然在开源项目贡献上占据领先地位。

总结来说,受访开发者中的开源贡献者比例是比较高的,而在无论国内国外,大部分开发者们都比较热衷于为开源项目做贡献。

数据库篇

Which databases have you used in the last 12 months?

过去 12 个月,您使用过哪种(哪些)数据库?

非常经典的问题,每年必问,今年这个问题的反馈有三个图表,我们逐个解读。可以看到,调研者的反馈中,选择 MySQL 的用户足足有 52%,可以说是一骑绝尘,遥遥领先,甚至比往年还多出了一Part;而 PostgreSQL 则没有增长,稳定在 38%。

JetBrains 官方对这个报告也提出一些看法:他们发现 SQLite 的排名竟然从之前的第三下降到了第五位,这个是令人感到困惑的,因为轻量化、易于使用的 SQLite 可用于独立桌面应用程序、嵌入式开发、移动应用程序的本地存储以及几乎其他任何地方,但是现在排名却降低了(虽然占比在上涨),这个变化是否是因为云数据库的崛起导致的呢?本地数据库是否因此受到了影响?还是说有其他的更好用的嵌入式数据库出现了?

笔者的看法是,这部分可能确实没考虑到一些兴起的小型数据库,比如 DuckDB 之类。我们还可以看到 MairaDB 的用户数是在增长的,但是为啥股价上不去?这也是很有意思的点,背后的原因恐怕也和云厂商做DBaaS 的竞争有关。此外,调查显示 Oracle 的用户量在减少,这个不难理解,最近几年新兴的数据库太多了,老牌数据库厂商的份额势必会被众多新兴厂商占据一部分。

同样的问题,JetBrains 还根据受访者对 SQL 的参与程度,把结果分为三组:

  • SQL -- 第一语言:包括那些在主要编程语言中将 SQL 排在第一位的人。
  • SQL -- 主要语言:包括那些将 SQL 作为三种主要编程语言之一(可能作为其第一语言)的人。
  • SQL -- 次要语言:包括所有在过去 12 个月内使用过 SQL 的人。

毫无悬念的是,MySQL 在这三个用户分组中依旧占据排行榜第一。而SQLite和MongoDB看起来受到不少 SQL 用户的青睐,因为它们设置和使用起来都很简单,是开发小型应用程序、学习和原型设计的理想选择。另外,也可以看到 MS SQL Server 和 Oracle Database 这两个老牌数据库在 SQL 专业人士中明显比在非专业人士中更受欢迎。

最后一个相关的图表是比较有趣的,在这个相关表中,每个值表示有多少列所示数据库用户同样使用行所示数据库。例如,有 38% 的 MySQL 用户同样使用 PostgreSQL,而 51% 的 PostgreSQL 用户同样使用 MySQL。

从这个表我们可以看出,MySQL 几乎是所有数据库使用者都学习过的数据库,相关值全部超过了 50%

Relative popularity of databases by region

按区域显示的数据库相对受欢迎程度

本节数据中,**"相对受欢迎程度"**是指一种数据库在特定地区的受欢迎成都相比于它在全球的受欢迎程度。比如,MySQL 在德国的份额为 39%,而它在全球的份额为 51%。将差值 (--12%) 除以 51%,我们得到 --24%。这就是我们定义 MySQL 在德国的相对受欢迎程度的方式。

从图中,我们明显可以看出来,MySQL 在中国大陆的相对受欢迎程度非常高,占据了 47%,受欢迎度排名第 二;而排名第一的则是 Redis,达到了 83%;而 PostgreSQL 则是 -36%,排名倒数第二 ,虽然最近几年一直有不少厂商帮 PG 疯狂造势,但是看来结果并不是那么令人满意;令人惊讶的是,即便在大兴信创、强调"去O"的背景下,Oracle 数据库依旧在中国的受欢迎程度达到了 19%,中国大陆排名第三,可见 Oracle 的用户忠诚度之高,这和产品质量也强相关,真正实现完全"去O",恐怕依旧任重道远。

当然,这只是在中国的情况,其他国家的情况大家也可以看图了解一下,比较突出的是,MariaDB 竟然在法国、德国、韩国这三个国家的受欢迎度超过了 100%,在西班牙是 93%,看来这几个国家的开发者还是比较青睐这个由 MySQL 原作者亲自 Fork 出来的数据库分支。

Relative popularity of databases by primary programming language

按照主要编程语言显示的数据库相对受欢迎程度

本节数据中,"相对受欢迎程度"是指一种数据库在某种编程语言的用户中的受欢迎程度相对于它在一般情况下的受欢迎程度。例如,MongoDB 在 Python 用户中的份额为 29.2%,而其一般份额为 26.6%。将差值 (+2.6%) 除以 26.6%,我们得到 +10%。我们称之为 MongoDB 在 Python 开发者中的相对受欢迎程度。

从图中可以看出,PHP 语言的使用者依旧是 MySQL 系数据库的忠实用户,这个不难理解,LAMP 建站的架构依旧在全球占据主流;用 Ruby、Scala、Typescript的开发者更喜欢用 PostgreSQL;不意外的是,使用 C# 的开发非常依赖于 MS SQL Server,毕竟是微软家的独门绝技。

Which tools do you regularly use for working with databases?

您经常使用哪种(哪些)工具处理数据库?

这一小节,主要是统计了数据库管理工具,这个列的还是比较全的,当然毕竟是 JetBrains 做得调研,排名第一的就是他们家的 DataGrip 插件。不过MySQL Workbench、命令行这两个方式依然占在前三位置,从这看来依然有部分程序员更喜欢用命令行界面去操作数据库,不一定非得给个可视化前端界面~

Relative popularity of database tools by region

按区域显示的数据库工具相对受欢迎程度

本节数据中,"相对受欢迎程度"是指一种工具在一个地区的受欢迎程度相比于它在全球的受欢迎程度。例如,命令行在阿根廷的份额为 7.8%,而在全球的份额为 19.4%。将差值 (--11.6%) 除以 19.4%,我们得到 -60%。我们称之为命令行在阿根廷的相对受欢迎程度。

这节里,有个明显的"黑马",就是Navicat,受欢迎程度竟然高达 352%,而其他国家几乎是一片黑,对比起来就相形见绌了。当然,JetBrains 也解释了,少数工具表现出显著的区域特异性,比如 Navicat,在受访者中有 42% 的中国开发者使用它,这并不奇怪,因为这款工具是在中国香港开发的,从一开始就为中国用户量身制定,积极建立了在中国市场的强大影响力和占有率。(顺带一提,大家如果是公司使用 Navicat 一定注意要用正版哦,否则律师函警告~ 开个玩笑,商业用途还是必须使用正版软件的)

Experience with databases

数据库经验

受访者中,50%以上的开发者是具有4年以上相关数据库经验的,这也可以凸显出这份调研报告的质量。

How many connections do you have in your database explorer?

您的数据库资源管理器中有多少个连接?

从数据来看,5个以下连接的更集中一些,不过5个以上连接的比例要更多一些。

Approximately how many rows (or equivalent) does your largest table have?

您最大的表中大约有多少行(或同等)?

这节数据显示,"数千行 "和"数百万行 "数据在各个数据库使用中是比较常见的,或许说明大部分公司的场景根本不会达到数十亿数据存一张表的情况,即便有,也不是主流。

以上就是 JetBrains 2023年开发者生态报告中的关于数据库的主要内容,为了方便阅读,我们挑选了比较典型的图表数据进行解读,综合来看,MySQL 在全球数据库的占比依旧很高,标题这里用了"顶流"二字,或许略显高调,不过,也算是符合事实了,而且是有数据的事实。

StoneDB 产品介绍

StoneDB 是石原子科技自主设计研发的国内首款完全兼容于 MySQL 生态的开源一体化实时 HTAP 数据库产品,具备行列混存、智能索引等核心特性,为 MySQL 数据库提供在线数据实时就近分析服务,能够高效解决 MySQL 数据库在分析型应用场景中面临的能力问题。同时,StoneDB 使用多存储引擎架构的设计,事务引擎具有数据强一致特性,具备完整的事务并发处理能力,使得 StoneDB 可以替代 MySQL 数据库满足在线事务处理场景的需求,使用 MySQL 的用户,通过 StoneDB 可以实现 TP+AP 混合负载,分析性能提升 10 倍以上,不需要进行数据迁移,也无需与其他 AP 集成,弥补 MySQL 分析领域的空白。

加入StoneDB社区

Github:github.com/stoneatom/s...

Gitee:gitee.com/StoneDB/sto...

社区官网:stonedb.io/

哔哩哔哩:space.bilibili.com/1154290084

Twitter:twitter.com/StoneDataBa...

Linkedin:www.linkedin.com/in/stonedb/

相关推荐
OpsEye2 小时前
Grafana插件安装并接入zabbix数据源
数据库·zabbix·grafana
爱上口袋的天空2 小时前
10 - Clickhouse集群部署以及副本和分片
数据库·clickhouse
文杰一米八3 小时前
idea或datagrip连接opengauss数据库
java·数据库·intellij-idea
CC呢4 小时前
基于stm32单片机的教室节能系统设计
数据库·mongodb
Duck Bro5 小时前
MySQL:表的增删改查(CRUD)
android·java·数据库·c++·mysql
BAGAE6 小时前
tomcat,appche,nginix,jboss区别
java·linux·数据库·ubuntu·tomcat
大只因bug6 小时前
基于Springboot的流浪宠物管理系统
java·spring boot·mysql·流浪宠物管理系统·在线宠物管理系统源码·javaweb宠物管理系统·宠物网站系统源码
老牛源码6 小时前
Z2400024基于Java+SSM+mysql+maven开发的社区论坛系统的设计与实现(附源码 配置 文档)
java·mysql·maven·ssm
web130933203986 小时前
RabbitMQ 篇-深入了解延迟消息、MQ 可靠性(生产者可靠性、MQ 可靠性、消费者可靠性)
数据库·分布式·rabbitmq
一二小选手7 小时前
【Mybatis】动态SQL详解
数据库·sql·mybatis