15
A
回答
3
我已经使用MongoDB(并尝试使用Rails的MongoMapper和Mongoid适配器)几个月了。我以前深深扎根于SQL。这里是我的观察:
- 缺乏模式和迁移并不意味着你得到免费的午餐。您的应用程序代码将不得不携带SQL模式处理的逻辑和约束。您必须更加严格地手动迁移数据,例如当你重新命名一个属性时,或者你的应用程序代码必须处理同一事物的多个名称(在本例中)。这很容易导致数据库中的大量垃圾和/或模糊的错误。 MongoDB非常棒,因为您不必事先定义要存储的内容,并且可以将整个数组和对象层次结构放入任何属性中。在某些方面,易用性带来的安全性较低,而且我认为我们仍在围绕如何避免在此建立大量技术债务来发展许多最佳实践。
- 没有加入 - 这意味着当你设计你的收藏时,你必须知道你的数据访问模式(至少那些需要可扩展的模式)。
- 没有事务 - 如果集合中的相同记录可以从并发请求更新,则会打开竞争条件的风险。对于单个集合更新,有原子操作,这些特别适合Mongoid(但不是由MongoMapper)支持和使用。
- 任何记录的16MB记录限制。与SQL中的
text
字段不同,该字段可以具有任意大小的内容,但对于任何记录,MongoDB都有16MB的硬性限制。这是值得您考虑,因为你打算存储,例如大型数组,对象层次结构等。
1
这篇关于MongoDB问题的文章比上面链接的有点新。 http://rsmith.co/2012/11/05/mongodb-gotchas-and-how-to-avoid-them/
相关问题
- 1. 使用System.Diagnostics.Process和Process.Start的提示/技巧/陷阱
- 2. 从MySQL切换到PostgreSQL - 提示,技巧和陷阱?
- 3. 瓦拉:陷阱,技巧和窍门
- 4. 专业提示和技巧
- 5. window.onbeforeunload提示和技巧
- 6. JVMTI提示和技巧
- 7. 的Eclipse Ganymede黑客,提示,技巧,技巧和最佳实践
- 8. 提示/技巧:Python的
- 9. 关于Asp.net mvc的提示和技巧
- 10. MongoDB和Authlogic,任何陷阱? (mongomapper)
- 11. DB2 SQL技巧/提示
- 12. XCode + svn提示,技巧等
- 13. Android模拟器提示和技巧
- 14. Xcode 4:技巧,提示和快捷键
- 15. 收藏SQLPLUS提示和技巧
- 16. 从MS Access的空陷阱的陷阱
- 17. jquery陷阱表单提交()
- 18. 陷阱
- 19. @Autowired和线程的陷阱
- 20. 软件陷阱vs硬件陷阱
- 21. FileSystemWatcher的陷阱
- 22. ReSharper的陷阱
- 23. 良好的提示和技巧,“精简”你的Javascript和jQuery
- 24. iPhone GPS开发 - 提示+技巧
- 25. Alexa节点技巧问题/提示
- 26. SQL Server - 同义词提示与技巧?
- 27. Rufus-Scheduler,DaemonKit和陷阱
- 28. SNMP陷阱和社区
- 29. C角箱和陷阱
- 30. if-else优化和陷阱?
请社区的wiki,否则它将被迅速关闭 – 2010-12-24 00:48:14