我希望了解MongoDB的系统和数据库架构。
我想了解MongoDB如何存储和检索文档,是否全部在内存中等。
与Oracle的比较分析将是一个额外的奖励,但我主要关注理解MongoDB架构本身。
任何指针都将有所帮助。
我希望了解MongoDB的系统和数据库架构。
我想了解MongoDB如何存储和检索文档,是否全部在内存中等。
与Oracle的比较分析将是一个额外的奖励,但我主要关注理解MongoDB架构本身。
任何指针都将有所帮助。
MongoDB将数据库文件映射到内存中,这使得操作系统可以控制并分配最大量的RAM给内存映射。当MongoDB读写数据库时,它实际上是在读写RAM。数据库中文档的所有索引也保存在RAM中。RAM中的文件每60秒刷新到磁盘。为了防止电源故障导致数据丢失,默认情况下运行时会打开日志功能。日志文件每100毫秒刷新一次到磁盘,如果发生电源故障,则用于将数据库恢复到一致状态。
对于MongoDB而言,RAM的数量是一个重要的设计决策。你需要确定你的工作集大小 - 即如果你只需要读写数据库中最近10%的数据,则这10%就是你的工作集,并应该尽可能保留在内存中以获得最佳性能。因此,如果您的工作集大小为10GB,则需要10GB才能达到最佳性能,否则查询/更新将会变慢,因为内存页从磁盘换入内存。
MongoDB的其他重要方面是备份和分片以进行扩展。有许多在线资源可供学习。 MongoDB是免费和开源的。
编辑: 查看教程是个好主意: http://www.mongodb.org/display/DOCS/Tutorial 还有手册: http://www.mongodb.org/display/DOCS/Manual 管理员区域也很有用: http://www.mongodb.org/display/DOCS/Admin+Zone 如果你厌倦了阅读,那么这些演示文稿值得一看。 http://www.10gen.com/presentations