当前位置:  开发笔记 > 编程语言 > 正文

为什么我们使用NoSQL?

如何解决《为什么我们使用NoSQL?》经验,为你挑选了4个好方法。

了解了NoSQL提供的一些优点(可伸缩性,可用性等),我仍然不清楚网站为什么要使用非关系数据库.我可以得到一些帮助,最好是一个例子吗?



1> Sjoerd..:

更好的性能

NoSQL数据库有时会有更好的性能,虽然这取决于具体情况并且存在争议.

适应性

您可以在不停机的情况下添加和删除"列".在大多数SQL服务器中,这需要很长时间并占用负载.

应用设计

期望将数据存储与逻辑分离.如果您在SQL查询中加入并选择内容,则将业务逻辑与存储混合在一起.



2> tolitius..:

NoSQL数据库可以解决几个问题,主要是:

(嗡嗡声)BigData =>认为TB,PB等.

使用分布式系统 /数据集=>假设您有42种产品,因此其中13种将存在芝加哥数据中心,21种位于纽约,另外21种位于日本某处,但是一旦您查询了所有42种产品,您就不需要知道他们所在的位置:NoSQL DB会.这也允许更多的脑力(服务器)来解决硬计算问题[似乎不适合你的用例,但这是一个有趣的事情要注意]

分区 =>让您的数据库易于分发,除了日本的酷8产品之外,还允许轻松的数据复制,因此这些42个产品将被复制3倍,这意味着您将拥有3个数据库每个产品的副本.因此,如果出现故障,没问题=>这里有可用的副本.这就是NoSQL数据库与RDBMS实际相比的地方.当然,你可以对Oracle/MySQL/PostgreSQL等进行分片,分区和集群.但是这是一个更复杂的过程,对于你雇用的大多数人来说通常是一个维护问题.

但是你的问题:

为什么网站要使用非关系数据库

当我和大多数人一起工作/与NoSQL他们聊天,选择他们的"网站"时,遗憾的是不是出于上述原因,而是因为这样做太了.事实上,由于这个原因,许多项目失败/极度困难.

如果大多数的NoSQL大师带着面具了,他们会同意,大部分的问题(或人打电话给他们websites),开发人员解决一天算一天,能和相当与一个SQL的解决方案,如PostgreSQL的,MySQL等解决..在它上面有一些很酷的Redis缓存层.只有一小部分问题真的会从NoSQL中受益.

我个人喜欢Riak,因为我坚信NoSQL,容错DB应该具有极强,灵活和自然分布的基础=>如Erlang OTP.另外,我是简单的粉丝.但同样,考虑到这个问题,我会选择最好的方法,而且大部分时间我都需要这种一致性(特别是如果我们谈论金钱 /金融世界/关键任务等等).



3> Michael Borg..:

不使用SQL数据库的主要原因是可伸缩性.事务保证和关系模型几乎不可能在多台机器上有用地扩展数据库,特别是考虑到现代Web应用程序生成的写入繁重的工作负载.

除了大量的分区和分片之外,像Facebook这样的应用程序无法在简单的SQL数据库上运行,这也需要对应用程序逻辑进行重大调整.这就是Facebook开发Cassandra的原因.

NoSQL基本上意味着你没有一些SQL特有的功能,如立即一致性或简单连接,以换取能够使用更好地扩展的数据库.

相反,如果您的网站永远不会有十几个并发用户(绝大多数网站都是如此),那么使用NoSQL毫无意义.



4> 小智..:

我们需要了解当前应用程序中的问题是什么?

交易

数据量

数据结构

NoSQL解决了原子性或一致性的可伸缩性和可用性问题.

基本驱动我们到CAP定理.Eric Brewer还指出,在共享数据系统的三个属性中 - 网络分区的一致性,可用性和容忍度 - 在任何给定的时刻都只能实现两个.(CAP定理)

在此输入图像描述

NOSQL方法

无架构数据表示:

他们中的大多数提供无模式数据表示并允许存储半结构化数据.

可以随着时间的推移继续发展 - 包括添加新字段甚至嵌套数据,例如,在JSON表示的情况下.

开发时间:

没有复杂的SQL查询.

没有JOIN声明.

速度:

非常高速的交付和大多数​​内置的实体级缓存

提前规划可扩展性:

避免返工

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有