风向标:数据库技术趋势解读-阿里云开发者社区

开发者社区> 数据库> 正文

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

简介:

目录:

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

  • SQL、NoSQL及NewSQL的发展历程

  • 感谢名单

 

DB-Engines数据库排行榜解读

 

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

 

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

 

20161223104844253.jpg

 

从最新一期榜单来看,数据库产品前三甲非常稳固,与后面差距依然很大。传统商业数据库的代表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、国产数据库这六大范畴的最新技术发展内容细分到不同版块中呈现,请点击相应版块进行阅读。

 

感谢名单

 

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

 

20161223104855701.jpg

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章