MongoDB作为主数据库?

时间:2010-09-18 03:01:06

标签: mongodb database nosql

我已经阅读了很多MongoDB。

我喜欢它提供的所有功能,但我想知道是否可以将它作为我应用程序的唯一数据库,包括存储敏感信息。

我知道它会影响ACID中的耐久性部分,但作为解决方案,我将在不同位置拥有1个主设备和2个从设备。

如果我这样做,是否可以将它用作主数据库,存储所有内容?

更新:

让我们这样说吧。

我真的需要一个文档存储而不是传统的dbms才能创建我的灵活应用程序。但是,如果我有多个数据库复制和主从,MongoDB是否足够可靠地存储客户敏感信息?因为据我所知,一个主要的缺点是它会危及ACID中的D.所以我用多个数据库来解决它。

现在没有重大问题,例如丢失数据问题?

有人告诉我,使用MongoDB可以向客户收取两次费用。有人可以启发这个吗?

3 个答案:

答案 0 :(得分:7)

是的,MongoDB可以作为应用程序的唯一数据存储。使用复制并确保您了解safe writesw

  

有人告诉我,使用MongoDB可以向客户收费   两次。有人可以启发这个吗?

我猜是谁告诉你这是在谈论最终的一致性。一些NoSQL数据库最终是一致的,这意味着您可能会有冲突的写入。但是,MongoDB并不是非常一致的(就像关系数据库一样)。

答案 1 :(得分:5)

您的应用程序是否灵活与您使用“nosql”,“文档数据库”或正确的RDBMS绝对无关。没有人使用你的应用程序会关心任何一种方式。

如果你在编码时需要灵活性,你应该研究一下框架,比如ActiveRecord for Ruby,它可以使DB接口更加简单,通用和强大。在这个级别,您可以获得更多不仅仅是更改数据库,甚至可以变得与数据库无关,这意味着您可以在不更改任何代码的情况下更改数据库。事实上,我发现ActiveRecord可以通过减轻繁琐且容易出错的“与SQL混合的代码”来提高我的工作效率。

的确,如果你觉得你需要一个无模式数据库,对于关键数据,你做错了什么。您正在为项目的关键需求提供自己的便利,或者无知以为您以后不会遇到问题。迟早,缺乏一致性会咬你的屁股,很难!

我觉得你对RDBMS很敏感,因为你对所有的术语,语法和声音CS原则都不太满意。

相信我,如果您要创建任何有价值的应用程序,那么首先要学习SQL,ACID和良好的数据库原则要好上百倍。只需阅读基础知识,即可随时随地掌握您的知识。这对我们每个人来说都是一样的,需要时间,但你从一开始就学会做正确的事。

像MongoDB这样的低级工具和同等产品只会为你提供无限多的弹药来射击自己。他们让它看起来很容易。然而,实际上,他们为你,编码员留下了艰苦的工作,而一旦你掌握了基础知识,RDBMS将为你处理更多的事情。

为什么要使用电脑,如果你想要更多的工作,你可以回到纸上。设计将是轻而易举的,实施可以超快。完成。除了它当然是不对的。

在现实世界中,我们不能忽视一致性,数据库设计和更多合理的CS原则。这就是为什么一开始研究它们并继续学习的好主意。

不要买入炒作。你在这里询问关于MongoDB的问题,但包括你真的需要它的功能。凭借25年的计算机经验,我根本就不买它。如果您有创造性地思考,可以使RDBMS做任何您想做的事情,或者可以利用框架来避免错误和浪费时间。

将ACID属性制作成MongoDB似乎对我来说更多的工作,并且根据经验,听起来像是徒劳的练习,而不是使用已经设计的东西来满足这些目的。

答案 2 :(得分:3)

有可能吗?当然。为什么不?如果您愿意,可以将所有内容作为XML存储在文本文件中。

这是最好的主意吗?这取决于您要做的事情,系统架构的其余部分,您的网站要实现的规模等等。