SQL vs NoSQL:你需要知道什么?

Posted 云头条

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL vs NoSQL:你需要知道什么?相关的知识,希望对你有一定的参考价值。

不断演变的数据库生态圈



SQL vs NoSQL:你需要知道什么?


“SQL过时了。”


“RDBMS再也无法满足公司企业的数据管理要求了。”


“像NoSQL这些新的数据库技术是适合如今企业的解决方案。”


无论在数据库技术行业里面还是外面,诸如此类的论调我们可是听多了。但是它们果真属实吗?SQL真是明日黄花,NoSQL解决方案真是未来出路吗?


我们在本文中将概述SQL和NoSQL之间的区别以及众多NoSQL技术本身之间的一大堆区别,并且探讨关系数据库管理系统(RDBMS)是否真是明日黄花。


SQL vs NoSQL一览表:


SQL

NoSQL

数据存储

存储在关系模型中,有行和列。

行含有关于某一个特定数据项/条目的所有信息,列是所有不同的数据点;比如说,你可能有一行关于某辆车的数据,其中有“型号”、“款式”和“颜色”等列。

“NoSQL”这个术语涵盖许多数据库,每个数据库又有不同的数据存储模型。几种主要的数据库有:文档数据库、图形数据库、键值数据库和列式数据库。关于它们之间区别的更多信息详见下文。

数据库模式和灵活性

每个记录符合固定的数据库模式,这意味着列必须在数据录入前加以确定和锁定,每一行必须含有每一列的数据。这可以修改,但需要修改整个数据库,并且离线操作。

模式是动态的。

信息可以实时添加,每一“行”没必要含有每一“列”的数据。

可扩展性

扩展是纵向的。实际上,更多的数据

意味着更庞大的服务器,成本可能非常高昂。可以跨多台服务器扩展RDBMS,但这是一个困难又费时的

过程。

扩展是横向的,这意味着跨服务器扩展。这些多台服务器是便宜的商用硬件或云实例,因而比纵向扩展要经济高效得多。许多NoSQL技术还自动将数据分配到多台服务器上。

ACID遵从性

(原子性、

一致性、隔离性和持久性)

绝大多数的关系数据库遵从ACID。

不同技术的遵从性不一样,但是许多

NoSQL解决方案牺牲ACID遵从性,

以换取性能和可扩展性。


NoSQL的多张脸孔


听到“NoSQL”这个术语后,你可能以为统一属于这个范畴的所有技术都有同样的数据模型,有这种想法也情有可原。实际上,NoSQL是指一整批技术,这些技术存储和处理数据的方式各不相同。一些主要的方式包括如下:


文档数据库


文档数据库解决方案CouchDB的这张图相当清楚地总结了RDBMS和文档数据库之间的区别:


SQL vs NoSQL:你需要知道什么?

SQL vs NoSQL


数据存储在文档中,这些文档按集合体分门别类,而不是说数据以行和列的形式存储在表中。每个文档可能有全然不同的结构。文档数据库包括上面提到的CouchDB和MongoDB。


键值存储数据库


数据存储在键值对的相关数组中。键是个属性名称,它与值关联起来。知名的键值存储数据库包括Redis、Voldemort(由LinkedIn开发)和Dynamo(由亚马逊开发)。


图形数据库


这种数据库用于使用图形可以清楚表示关系的数据。数据存储在图形结构中,有节点(实体)、属性(关于实体的信息)和线条(实体之间的关系)。这种数据库的例子包括Neo4J和InfiniteGraph。


列式(或宽列)数据库


在列式数据库中,你拥有的是列族、而不是“表”,列族其实是行的容器。不像RDBMS,你不需要事先知道所有的列,每一行没必要拥有数量一样的列。列式数据库最适合分析庞大数据库,知名的列式数据库包括Cassandra和HBase。


SQL vs NoSQL:该使用哪一种?


如果认为SQL和NoSQL是直接的对立面、彼此竞争,这种想法未免存在缺陷,尤其是由于许多公司决定同时使用两者。与我之前探讨的所有技术一样,确实不存在“一应俱全式”的方法;选择合适的技术取决于具体的使用场合。如果你的技术需求在不断变化,就需要高吞吐量来处理病毒式增长;或者你的数据在快速增长,你需要能够迅速、高效地横向扩展,那么NoSQL可能适合你。但是如果你拥有的数据其结构没有发生变化,面临的又是易于管理的适度增长,那么SQL技术也许就能满足你的需求。当然,SQL还没有完蛋。


云头条编译|未经授权谢绝转载


SQL vs NoSQL:你需要知道什么?
SQL vs NoSQL:你需要知道什么?
6月30日,北京,一场直播行业的嘉年华。
国内领先企业级云服务商「七牛云」倾力打造,各路情怀主播及神秘嘉宾倾情加盟。本次,在网络分发层面,七牛将首推自有直播流服务。在场景方面,也将带来更为丰富的趋势性直播功能,使用户更快完成开发。

距离发布会只剩2天,戳阅读原文,可查看七牛直播云发布会详情!

以上是关于SQL vs NoSQL:你需要知道什么?的主要内容,如果未能解决你的问题,请参考以下文章

SQL VS NoSQL 如何选择数据库

SQL vs NoSQL:如何选择?

SQL VS NoSQL 如何选择数据库

「SQL vs NOSQL」关系型数据库和非关系型数据库深度解析

NoSQL VS SQL

除了SQL,你知道NoSQL吗?