Mongodb 所以这个NoSQL的东西

Mongodb 所以这个NoSQL的东西,mongodb,nosql,Mongodb,Nosql,我一直在看MongoDB,我很着迷。看起来(尽管我不得不怀疑)作为交换,以一种稍微不同的方式组织我的数据库,我可以获得与免费的CPU和RAM一样多的性能?它看起来优雅、灵活,但我不会像Rails那样用它来换取快速。有什么问题吗?关系数据库给了我什么,而我不能用Mongo做得很好或根本做不到?换句话说,为什么(除了现有NoSQL系统的不成熟和对改变的抵制)整个行业不从MySQL跳槽 据我所知,随着规模的扩大,MySQL将为Memcache提供数据。现在看来,我可以从一开始就做一些同样出色的事情 我

我一直在看MongoDB,我很着迷。看起来(尽管我不得不怀疑)作为交换,以一种稍微不同的方式组织我的数据库,我可以获得与免费的CPU和RAM一样多的性能?它看起来优雅、灵活,但我不会像Rails那样用它来换取快速。有什么问题吗?关系数据库给了我什么,而我不能用Mongo做得很好或根本做不到?换句话说,为什么(除了现有NoSQL系统的不成熟和对改变的抵制)整个行业不从MySQL跳槽

据我所知,随着规模的扩大,MySQL将为Memcache提供数据。现在看来,我可以从一开始就做一些同样出色的事情

我知道我不能跨关系进行交易。。。什么时候这会是一件大事

我读过,但据我所知,他的论点基本上是,使用真正工具的真正企业不需要避免SQL,因此认为有必要抛弃SQL的人是在做错事。但是,没有一家“企业”像Facebook或谷歌那样需要处理几乎同样多的并发用户,所以我真的不明白他的意思。(沃尔玛有180万员工;Facebook有3亿用户)


我真的很好奇。。。我保证我不会乱动。

我也是MongoDB的忠实粉丝。尽管如此,它绝对不是RDBMS的大规模替代品。Facebook有3亿用户,但是如果你的一些朋友一次都没有出现在列表中,或者偶尔有一张相册不见了,你会注意到吗?可能不会。如果你的状态更新在几分钟内没有传到你所有的朋友那里,这有关系吗?几乎没有。如果沃尔玛的资产负债表不同步,会有人失去理智吗?当然

NoSQL数据库在关系不严格且数据完整性不同步的“模糊”环境中非常有用。当数据集极其复杂且关系密切(因此得名)时,关系数据库管理系统仍然很重要,并且需要保持其纯粹性


NoSQL的巨大推动来自于过去30年的事实,我们在这两种情况下都使用RDMBS系统。我们现在有了一个更适合许多情况的工具。事实上,有些人会争论得最多。但是没有人会争辩所有的问题。

如果你的数据不利用关系代数,也不需要ACID保证,那么使用专门针对这些用途的语言就不会有任何好处。

对NoSQL的强烈反对源于许多NoSQL倡导者的心态。具体来说,这种态度最好概括为“SQL太难了,我不应该这么做”。我不喜欢NoSQL,因为在很多情况下它似乎是在提升无知

我知道我不能跨关系进行交易。。。什么时候这会是一件大事


比你想象的要多。当你不能假设一个一致的数据集时,有很多事情可能会出错。

我使用过MongoDB、Redis(超过键值对支持列表、集合和排序集)、Tokyo Tyrant、Memcached和MySql&PostgreSQL

NoSQL数据库和基于SQL的数据库之间的参数是完全没有根据的。您需要根据您的用例选择适当的模型。。如果您需要符合ACE的标准,继续使用SQL数据库,比如PostgreSQL、Oracle等。您需要高性能,但您不太关心数据,那么您可以考虑NoSQL L DB。它们是根本不同的技术。您甚至可以使用模型的组合。使用NoSQL,您将丢失关系、约束,有时还会丢失事务。。事实上,这也是NoSQL更快的原因之一

一旦我失去了两个月MongoDB的聚合数据。。不知道我是怎么丢失的,但我有备份,我丢失了几分钟的数据。我带回了MongoDB和备份。。如果您使用NoSQL,可以偶尔进行备份,或者为DB备份安排cron作业。这也适用于SQL DB

与SQL RDBMS相比,NoSQL DBs更年轻,目前正处于全面开发阶段,但NoSQL DBs在其范围内已经成熟,即它们意味着高性能、易于复制


在我的网站(stacked.In)中,我只使用了redis DB,它的运行速度比MySQL快得多。

你认为Facebook多久会对其数据存储进行任意查询?并不是所有的东西都是一个web应用程序,相反,也不是每一组数据都需要深入分析

在我看来,NoSQL在很大程度上是一种反动的反应,基本上相当于人们使用RDBMS来完成他们不太适合的任务,因为人们没有根据自己的需要积极地做出决定,并选择了一些默认值。在全行业范围内“跳槽”MySQL(或一般的RDBMS)将再次犯同样的错误,钟摆将以相反的方式摆回


如果MongoDB适用于您的用例,请务必继续。只是不要假设你的用例都是用例。没有适合所有场景的技术。超音速喷气机的发明并没有消除货运列车的使用。

记住,NoSQL并不是什么新鲜事。毕竟,在使用SQL和关系数据库之前,他们必须先使用一些东西,对吗?事实上,像腮腺炎和CODASYL这样的系统也是以同样的方式工作的,而且已经有几十年的历史了。关系数据库提供的是以任意方式查询数据的能力

假设您有一个数据库,其中包含客户、他们购买的物品以及他们购买的物品。NoSQL数据库可能有包含采购的客户和包含项目的采购。这使得确定某个客户购买了哪些商品变得容易,但很难确定某个客户购买了哪些商品。关系数据库将具有客户表、采购表、项目表以及将项目链接到采购的表。在SQL中,这两个查询都很容易表达,数据库引擎为您完成了所有繁重的工作

另外,请记住,NoSQL趋势的一部分是牺牲一致性