暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

跟我解读DB-Engines排行榜

韩锋频道 2020-06-26
1784

DB-Engines(https://db-engines.com/en/ranking)是一个较为权威的全球数据库排名网站。其根据受欢迎程度对数据库管理系统进行排名,排名每月更新一次。排名的数据依据 5 个不同的指标:

1. Google 以及 Bing 搜索引擎的关键字搜索数量

2. Google Trends 的搜索数量

3. Indeed 网站中的职位搜索量

4. LinkedIn 中提到关键字的个人资料数

5. Stackoverflow 上相关的问题和关注者数量

这份榜单分析旨在为数据库相关从业人员提供一个技术方向的参考,其中涉及到的排名情况并非基于产品的技术先进程度或市场占有率等因素。其得分可理解为数据库受关注度/流行度得分。在这个网站上不仅提供了数据库排名及历史数据,此外还收录各数据库的明细信息。它包含的内容相当丰富的,其不仅是一个流行度排名,还可从中洞察行业的发展趋势。近期写个爬虫程序,将其网站数据收集汇总,尝试窥其一二。

1. 数据库总体

     

我们先来看看DB-Engines榜单的总体情况。这一榜单会每月收录新增的数据库,并淘汰一些。自榜单创立的2012年起,一直到最新的2020年6月,榜单收录的数据库变化情况如下,近两年基本维持在300~360之间,比较稳定,基本覆盖了大家能使用到的所有数据库。

数据库,作为三大基础软件之一,在40多年前就已经诞生并在IT发展中扮演着重要的角色。我们从被收录的数据库诞生的年份来看,有着明显的阶段性特征。从早期90年代每年2~5款产品,到近十年井喷式发展,数据库正在步入一个快速发展阶段。其中最早收录的产品是在上个世纪60年代诞生的IMS,特意查阅了下这个古董级的产品。IMS数据库是IBM公司开发的一个数据库产品,是最早的大型数据库管理系统,并采用层次模型。比较惊喜地发现,其在2017年10月,还做了最新版本的更新,可以说是老当益壮。也说明层次模型,在当今场景下仍然有一定的需求空间。

2. 模式:开源 vs 商业

     

开源模式,是近些年来一种新兴的商业模式。其与传统的商业软件相比,开源软件采用了开放源代码、免费分发等形式,减少了营销与销售成本,更易于广泛传播。DB-Engines收录的数据库来看,两种模式可以说50%vs50%,几乎占据了对等的比例。下图左侧是按数据库个数对比,右侧是按照评分总和对比。

但从时间发展来看,早期是以商业模式为主,主要在上个世纪90年代后期开始,开源模式逐步兴起,特别是在2010~2015年达到顶峰。最近5年,其发展势头有所减缓。

3. 数据模型:多模

     

数据库按照其数据组织方式,可划分为多种模型。从最为常见的关系模型、到文档模型、KV模型等等。我们可从下图中看到DB-Engines中收录的各种模型数据库的情况。特别强调下,已经有很多数据库支持多模型的方式,在单一数据库中可存储不同形式数据(即多模异构存储)。下面按数据模式做了分类统计。从总体上看,关系模型仍然是占据着主导的作用。

我们从常见的关系、文档、键值、图、时序、搜索类别,按时间维度看新增数据库的数量。从中可以发现不同模型数据库的发展周期有所不同。关系模型相对来说,长期保持稳定;文档和键值在08~15年处于明显的增长高峰,而时序则在相对较晚的13年前后出现发展高峰。

从受关注程度来说,关系模型仍然占据主导地位。下图按照不同数据模型,按照其评分累计,反映不同模型受关注程度差异。从中可见,关系模型其受关注程度要明显高于其他产品,这一领先优势比数据库数量对比要明显很多。这也说明关系模型在现在仍然占据主流方式。

在DB-Engines,也提供不同模式的分列排名。

  • 关系模型

  • 文档模型

  • 键值模型

  • 图模型

  • 时序模型

  • 搜索引擎

4. 数据库生态

     

1).云生态 vs 非云生态

云生态,是数据库未来的发展趋势。从现有数据来看,仅提供云生态的数据库还相对较少。

从云生态产品受关注程度分析下,下图中上半部分为云生态和非云生态年度关注度总和,按年度显示。下图为前者占比后者的百分比变化。由此可见,云生态的数据库受关注程度,正在逐步提升。当然,其整体占比仍然偏低。

我们将仅支持云生态产品单独摘录如下(部分),可见基本都是大厂的云数据库产品。这里面包含了这里面包括了Amazon、Microsoft、Google、IBM、Alibaba等知名企业。

2).大厂成为主要玩家

根据各厂商产品数量排名,Apache基金会和一众老牌数据库厂商及新兴云厂商在列。

但我们从受众关注度来看,又是一番情况。老牌的数据库厂商还是要大幅领先于新兴厂商。特别是Oracle,通过Oracle、MySQl两大产品的加持,遥遥领先于其他厂商。同时,三、四名的PostgreSQL和MongoDB,也颇引人注目。

5. 数据库能力与功能

     

1).能力:事务性

事务,是数据库的核心能力之一。不同数据库差异较大,有的实现了比较完整的ACID,有的则有所取舍。下图中显示DB-Engines收录数据库的事务能力,显式标注支持ACID的大约占到1/3,其他Other、Atomic、Yes等情况了化为部分支持,显式标注不支持的有70余种。

2).能力:并发性

并发访问能力,也是数据库必备条件之一。

3).能力:持久化

持久化能力是保证数据安全的基础,大部分数据库也都支持了持久化。

4).功能:二级索引

二级索引,对数据库加速有着广泛的意义。这里面尤其值得关注,有三款产品采用了全索引结构。

5).功能:外键能力

外键能力,常被很多互联网化架构方式所诟病。作为一种数据约束能力,外键在很多传统场景仍然有着存在意义。但其明显感觉支持程度已经不高。

6).功能:触发器

触发器的情况,类似于外键。

7).功能:支持SQL

SQL,仍然是最好的访问数据库的方式之一。

韩锋频道:

关注技术、管理、随想。

长按扫码可关注

文章转载自韩锋频道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论