透过DB-Enginges,看数据库管理系统的潮起浪涌

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介:
数据库管理系统的新兴和败落趋势  

 

如今的数据库技术文章中,常常充满了流行词汇和对于新趋势的预言,就像其他技术领域一样。今天通过DB-Enginges排序收集到的数据,来看一下这些趋势。

 

为了进行我们的DB-Enginges排序,我们制定了一个普及度值,并参照我们的排序方法对每个DBMS进行了排序。然后通过简单的添加每种系统所具有的明确相关值,制作了普及趋势曲线。我们把普及度值在所有系统中占的百分比用来展示发展趋势。

 

NoSQL

 

在过去的几年里,很多新兴的DBMS(数据库管理系统)被创造出来。它们常常支持很多种超出之前固有关系模型的数据模型。这主要是被新应用(比如网络事物、非结构化数据管理、复杂关系模型等)的需求所驱动。很多该类系统被证明是极其成功的,并且导致有一些预言家预言关系型数据库很快会消亡。他们的观点正确吗?


 

让我们看一下过去几年从DB-Engines数据集导出的图表吧。

 

20161207102718302.png

 

从2013年2月到2016年10月刚统计的数据中,可看到关系型数据库的普及率从原先的94%下跌到了81%。为了方便起见,我们用NoSQL代表所有的非关系型数据库,那么,这个族群从6%涨到了19%,在这个时期增长了三倍。但是,去年的普及率清晰地表明这个趋势似乎已经停止了,并且关系型数据库仍停留在一个较高的水平。

 

只从普及率变化的部分(并且忽略绝对值)分析,图形数据库从2013年1月到现在增长了近6倍。它们支持列存储和文档存储。

 

20161207102814558.png

 

对过去12个月做了相同的分析,发现时间序列数据库是当今成长最快的数据库类型:

 

20161207102844935.png

 

所有类型的数据库管理系统的统计表可以在这里找到:http://db-engines.com/en/ranking_categories。

 

云数据库

 

参照我们对于DBaaS产品的严格定义(请看描述http://db-engines.com/en/blog_post/37),我们绘出了其增长趋势,如下图:

 

20161207102917362.png

 

云数据库的普及率从2013年1月的0.1%增长到了今天的1.4%,并且这种趋势还在继续发展。

 

开源数据库

 

开源数据库备受欢迎:最近普及率占45%,4年前为36%。但是每个月都会明显增长的趋势也已经不甚明显。

 

20161207102947170.png

 

第二部分原标题:Exploring the trend towards open source database management systems

地址: http://db-engines.com/en/blog_post/65

作者:Matthias Gelbmann

 

   二、开源数据库管理系统的发展趋势  

 

开源数据库管理系统的普及,像在DB-Engines测量生成的排行那样,已经突破到一个新的记录。这里我们分析了一些潜在的细节。

 

在我们的排行中有154种开源系统,略微少于156种商业系统。如果我们把所有开源系统的普及度加起来的话,结果占到总体分数的46%,然而,54%为商业系统。

 

20161207103013303.png

 

虽然商业系统目前领先,但纵观历史发展趋势,我们认为这正在改变。因为开源系统的普及份额从4年前的35%增加到如今46%的新记录。

 

20161207103028173.png

 

但这种变化从何而来?它不像Oracle、微软和IBM这类公司在慢慢地开源其核心技术。

 

有2个实际的主要因素。首先,现有商业数据库的流行发展趋势呈现出不同的景象。Oracle在2015年成为我们所用的数据库,当时我们发现它的普及率增长达到了最高。类似的,微软的SQL Server到目前为止已经有持续一年的强劲发展,在过去的12个月内获得91个得分点。另一方面,竞争中有市场冲突的系统失去了普及度,比如DB2和微软Access。

 

现有的开源系统在普及度上平均水平更胜一筹。MySQL的得分曾经起起伏伏,但是近期呈现一个强势的整体上升趋势。

 

并且PostgreSQL,SQLiet和MariaDB在我们排行中的得分都一直在增长。

 

因此,这是我们观察到的趋势的一个来源:现有的开源系统比他们的商业系统小伙伴发展好一些。但是还有更多的重要的潜在原因。

 

看一下通过数据库模式分解的开源系统的份额:多值数据库、面向对象数据库和纯XML数据库。关系型数据库在相对中间的区间。

 

在左边,我们看到大多数新类型的系统种开源系统占很大的份额:列存储、图形数据库、时间序列数据库、文档数据库,还有不那么年轻的键值存储。在右侧,我们看到有一些份额较大的相对成熟的商业系统类型:

 

20161207103117876.jpg

 

将这些信息与各种数据库增长率相结合,我们可以看到开源系统发展趋势的主要原因:

 

20161207103132224.jpg

 

最上面的有最高增长率并且是高份额的开源系统,相反在底部,这些系统的增长率最低的主要由商业系统组成。

 

仔细观察每种数据模型的普及率排行,可以清晰地看到:

 

  • 所有列存储数据库名列前茅的是开源的:Cassandra, HBase, Accumulo等等。

  • 所有图形数据库名列前茅的是开源的:Neo4j, OrientDB, Titan等等。

  • 所有键值存储名列前茅的都是开源的: Redis, Memcached,Riak KV等等。

  • 所有时间序列数据库名列前茅的都是开源的: InfluxDB,RRDTool, Graphite等等。

  • 所有文档存储数据库名列前茅的都是开源的:MongoDB, Couchbase,CouchDB等等。这里值得注意的例外是Amazon DynamoDB,一个基于云的系统,它暗示了另外一种发展趋势。

  • 最后,搜索引擎名列前茅的也是开源的:Elasticsearch 和 Solr。

 

开源系统的发展趋势似乎不可阻挡。这对数据库产业来说是好消息。它意味着,对用户来说,这是一个既强大又实惠的巨大选择。另一方面,大量的公司已经证明,开源系统可以构建坚固的业务系统,他们用在核心业务系统上,支持着产品和服务。商业系统不会很快消失,因为有一部分人需要或者是倾向于有许可的系统。数据库的大陆版图无疑已经大的足够能容下所有族群了。

原文发布时间为:2016-12-07

本文来自云栖社区合作伙伴DBAplus

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
12天前
|
存储 SQL 关系型数据库
现代数据库管理系统的发展与挑战
数据库管理系统(DBMS)作为现代软件开发的核心组成部分,其在数据存储、管理和访问方面的演进至关重要。本文探讨了现代DBMS的发展历程、关键技术特点以及面临的挑战,包括大数据处理、云计算环境下的优化和安全性等方面。 【7月更文挑战第7天】
|
10天前
|
存储 自然语言处理 DataWorks
通过云上数据库三步构建RAG系统
本文介绍了如何使用OpenSearch LLM智能问答版通过云上数据库一站式构建RAG系统。
18539 10
|
14天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
131 1
|
1月前
|
SQL 缓存 监控
✅系统日活递增,如何优化提升大规模数据库
数据库性能优化涵盖硬件升级(如SSD、内存)、数据库设计简化、SQL查询优化、索引管理、缓存利用(如Redis)、负载均衡(读写分离、集群)、分区分片、备份恢复策略及性能监控。综合调整这些方面可提升系统性能和可用性。[MySQL索引设计][1]和[SQL优化实践][2]是深入学习的好资源。
|
28天前
|
存储 搜索推荐 数据库
软件系统【标签tag功能】的两种数据库设计
软件系统中的标签功能可采用两种数据库设计。方案一,文章和Tag各一表,Tag信息存储在文章表内(`tags`和`tagids`字段),优点是模型简单,但查询效率低且易引发数据冗余和一致性问题。方案二,增加Tagmap表,用于存储标签-文章映射,利于索引查询和数据更新,适用于高效率需求,但结构更复杂。
49 0
软件系统【标签tag功能】的两种数据库设计
|
29天前
|
存储 关系型数据库 MySQL
系统数据库
【6月更文挑战第20天】系统数据库。
12 1
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第一篇(存储引擎与Linux系统上安装MySQL数据库)
MySQL数据库进阶第一篇(存储引擎与Linux系统上安装MySQL数据库)
|
1月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列15、电子邮件管理系统
MySQL数据库基础练习系列15、电子邮件管理系统
20 1
|
1月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列14、博客后台管理系统
MySQL数据库基础练习系列14、博客后台管理系统
20 1
|
1月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础练习系列13、用户注册与登录系统
MySQL数据库基础练习系列13、用户注册与登录系统
19 1