风向标:数据库技术趋势解读

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

目录:

  • DB-Engines数据库排行榜解读

  • SQL、NoSQL及NewSQL的发展历程

  • 感谢名单

 

DB-Engines数据库排行榜解读

 

以下取自2016年12月的数据,具体信息可参考http://db-engines.com/en/ranking/

 

DB-Engines排名主要根据五个因素来进行:Google以及Bing搜索引擎的关键字搜索数量、Google Trends的搜索数量、Indeed网站中的职位搜索量、LinkedIn中提到关键字的个人资料数以及Stackoverflow上相关的问题和关注者数量,数据仅供参考。

 

 

从最新一期榜单来看,数据库产品前三甲非常稳固,与后面差距依然很大。传统商业数据库的代表Oracle,依旧独占鳌头,但也受到了其他数据库的逐步蚕食。

 

很多人预计在明年Q1,MySQL将超过Oracle占领首位。MySQL作为开源数据库的代表,持续在增长,但随着市场稳定已逐步趋于饱和,增长趋缓。

 

SQL Server作为另类代表,增长喜人。其不久前宣布的未来将支持Linux版本的消息,应该起到了不少提振作用,我们也很期待它在未来的表现。

 

前十名中以PostgreSQL、MongoDB、Cassandra、Redis为代表的开源数据库,各自有其独家绝技,长期来看仍然持续上涨。

 

其中值得重点关注的PostgreSQL、MongoDB。PostgreSQL曾是关系型数据库的学院派代表,近些年更是演化为“全面手”,社区活跃,发展十分迅猛。MongoDB作为NoSQL阵营里最为接近关系型数据库的代表,发展也很不错。未来不排除这两者出现可挑战前三甲的可能。

 

前十名中其余产品如DB2、Access等老牌产品,不可避免地出现下滑,未来堪忧。

 

十到二十名范围内,则是百花齐放,排名变化频繁。值得关注的是Elasticsearch,发展不错,已接近第十名,很有希望冲入十名之内。

 

从产品类别角度来看,关系型数据库仍然占绝对主导(前二十名中占了十三位)。其他领域各有优秀代表进入其中,文档型数据库的MongoDB、KV型数据库的Redis、搜索引擎的Elasticsearch、列式存储的HBase等。
 

SQL、NoSQL及NewSQL的发展历程

 

上世纪70年代提出了关系型数据库的概念,后来在关系型数据库上设计了一套相应的结构化查询语言称之为SQL,在之后的发展中又引入了事务也就是ACID的概念,SQL类或者说传统的关系型数据库最典型的一些产品有DB2、Oracle、SQLServer以及开源的MySQL、PostgreSQL等,这一代数据库的产品的特点可以理解为强ACID、且支持SQL接口。但这一代数据往往是单机版本,即使有的支持集群其扩展能力也很有限。

 

随着互联网的发展,很多应用的数据量也越来越大,传统的数据库在数据量越来越大的情况下性能等各方面往往也会出现明显的下降,所以后来又有了NoSQL的概念。这个概念其实很早就有,但在2009年左右开始变得比较火,NoSQL的概念主要是指非关系型的、不提供ACID的一种数据库设计理念。这个理念基础之上,很容易提供分布式解决方案,从而比较容易解决原来传统的SQL产品面临的一些问题。NoSQL类产品比较典型的有像Redis、MemchacheDB、HBase、Cassandra、Bigtable、LevelDB等,这类产品一般是根据Key来操作相应的Value,有些产品的Value会比较简单,有些会稍微复杂一些。

 

NoSQL类产品发展非常迅速,以至于曾经有一段时间大家觉得可能SQL类产品会很快退出历史舞台。随着NoSQL广泛使用以后,大家也发现NoSQL类的产品虽然操作简单,但在使用的时候应用层面要考虑的事情比较多,因为SQL改NoSQL很多东西都需要在应用层做拆分及汇总,开发人员心智负担比较重,主要体现在开发的代价会大一点,所以在这同一时期甚至更早一些的时候,大家也有在研究分布式的SQL解决方案。

 

分布式的SQL解决方案简单的说就是像使用传统的SQL产品一样来使用分布式的数据库产品,最典型的就是一些分库分表的解决方案。这些方案有的是在应用层面,按照一定的规则将数据进行拆分;也有的是通过引入兼容相关SQL传输协议的中间层透明的完成这种拆分工作,比如典型的一些开源产品有Cobar、Vitess等。

 

这种方案有些人也会将其归属到NewSQL的范畴,其实分库分表的分布式SQL解决方案已经可以满足绝大多数的业务需求,但是有一个不足点是从整体来看这种方式拆分以后的SQL解决方案在一个事务上下文中如果涉及到多个分片时候往往不能保证严格的事务的ACID属性。

 

后来,Google在2012、2013年分别发表了Spanner和F1的论文,告诉业界自己实现了一套既满足SQL,又满足事务的ACID属性;同时又将NoSQL的分布式特性集合到一起的一种实现方式,这也是大家比较认同的一种全新架构的NewSQL。当前比较典型的一些NewSQL产品,比如像Google的F1/Spanner、阿里的OceanBase以及开源的cockroachdb、Tidb等。NewSQL还需要更多生产环境的检验。

 

以上就是大体的一个SQL、NoSQL及NewSQL的发展历程。

下面,我们会分别将RDBMS、NoSQL、NewSQL、大数据生态圈、Docker、国产数据库这六大范畴的最新技术发展内容细分到不同版块中呈现,请点击相应版块进行阅读。

 

感谢名单

 

感谢本期提供宝贵信息和建议的专家朋友,排名不分先后。

 

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

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

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
58 3
|
1月前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
80 3
|
2月前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
99 8
|
2月前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
106 0
|
3月前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
3月前
|
NoSQL 关系型数据库 MongoDB
非关系型数据库-MongoDB技术(一)
非关系型数据库-MongoDB技术(一)
|
7天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
36 15
|
1月前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
115 61
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
55 3
|
1月前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。