我习惯于使用关系数据库,如MySQL或PostgreSQL,并与诸如Symfony、RoR或Django等MVC框架相结合,我认为它工作得很好。
但最近我听说了很多关于MongoDB的消息,它是一个非关系数据库,或者,引用official definition的话说,
是一个可伸缩的、高性能的、开源的、无模式的、面向文档的数据库。
我真的对处于边缘状态很感兴趣,希望了解下一个项目的所有选择,并选择最好的技术。
在哪些情况下,使用MongoDB (或类似的数据库)比使用“经典”关系数据库更好?总的来说,与MySQL相比,MongoDB的优势是什么?或者至少,为什么会有这么大的不同?
如果您有指向文档和/或示例的指针,它也会很有帮助。
发布于 2010-01-22 23:27:02
以下是MongoDB在构建web应用程序时的一些优势:
您需要阅读更多关于它的内容,并尝试使用它来获得更好的想法。这是一个在线演示:
发布于 2010-01-22 21:21:21
这样做有很多好处。
例如,您的数据库模式将更具可伸缩性,您将不必担心迁移,代码将更易于编写……例如,下面是我的模型的一个代码:
class Setting
include MongoMapper::Document
key :news_search, String, :required => true
key :is_availaible_for_iphone, :required => true, :default => false
belongs_to :movie
end添加一个键就是添加一行代码!
从长远来看,还会出现其他优势,比如更好的可伸缩性和速度。
,但请记住,非关系型数据库并不是比关系型数据库更好的.如果您的数据库有很多关系和规范化,那么使用像MongoDB这样的东西可能没有什么意义。这一切都是为了找到合适的工具来完成这项工作。
要阅读更多内容,我建议您查看mongodb网站上的"Why I think Mongo is to Databases what Rails was to Frameworks“或this post。如果你会说法语,那就看看解释如何从头开始设置MongoDB的this article吧。
编辑:我几乎忘了告诉你Ryan的this railscast。它非常有趣,让你想马上开始!
发布于 2010-01-23 07:03:16
无模式的优点是,您可以转储其中的任何负载,并且没有人会有任何理由抱怨它,或者说它是错误的。
这也意味着,无论你在其中倾倒什么,在你这样做之后,它仍然是完全没有意义的。
一些人会认为这是一个严重的劣势,另一些人则不会。
事实上,关系数据库具有良好的模式,这是因为它具有一组良好的扩展谓词,这些谓词允许我们将含义附加到数据库中记录的内容,这也是我们这样做的必要前提。
没有良好建立的模式,就没有扩展谓词,没有扩展谓词,用户就无法理解其中所填充的内容。
https://stackoverflow.com/questions/2117372
复制相似问题