首页 > 系统管理 > 为什么需要选用NoSQL?
2015
04-29

为什么需要选用NoSQL?

关系型数据库已经成为计算机文化的一部分,因其很多优点:

获取持久化数据

可以将数据持久化到磁盘,并且很容易访问到其中一小块数据。

并发

关系型数据库中有“事务”的概念,有效保障了多个程序访问同一份数据时的一致性,事务的ACID(原子性、一致性、隔离性、持久性)特性相信大家都了熟于心了。

集成

不同开发团队,不同平台,不同语言的应用程序可以共享同一份数据

标准的关系模型

之所以能够很方便地达到上述目的,是因为提供了近乎标准的、统一的关系模型

但是两个原因使得关系型数据库显得力不从心:

 阻抗失谐

内存中的数据结构和关系模型相差甚远,这就是所谓的“阻抗失谐(impedance mismatch)”。像“嵌套记录”、“列表”等内存结构需要先转换为“关系”和“元组”才能进行存储。

蜂拥而来的集群

随着网络规模急剧增加,硬件计算资源“横向拓展”已经成为必然,集群已经成为趋势,然而关系型数据库并不是设计给集群用的,要么采用“共享磁盘子系统”来支撑集群上的文件系统(磁盘会成为瓶颈),要么按照逻辑对数据库进行分片,这样虽然能够将负载分散到多个服务器,但是应用程序必须控制所有分片,而且事务、一致性等无法跨越分片进行。

至此,NoSQL诞生。

1.jpg

为集群而生

基本上可以认为NoSQL是为集群而生的(少数的如图数据库不是这样),当待处理的数据量很大,或者以较快速度增长,同时对数据访问效率要求很高,考虑NoSQL。

阻抗失谐

记住在集群上处理“大数据”并不是NoSQL唯一的原因,阻抗失谐也是另一大关键因素,NoSQL数据库中没有传统关系型数据库中的“模式”的概念,无需事先定义好数据存储模型,可以随意添加字段,非常适合于处理不规则数据和自定义字段,当希望以更加方便友好的数据交互方式来提高应用程序开发效率时,考虑NoSQL。




最后编辑:
作者:tshare365
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复