【发布时间】:2011-05-06 20:34:36
【问题描述】:
我知道MongoDB 接受并检索作为 JSON/BSON 对象的记录,但它实际上是如何将这些文件存储在磁盘上的呢?它们是作为单个 *.json 文件的集合还是作为一个大文件存储的?我对后者有一种预感,因为MongoDB 文档指出它在具有ext4/xfs 的系统上效果最好,后者更擅长处理大文件。谁能确认一下?
【问题讨论】:
我知道MongoDB 接受并检索作为 JSON/BSON 对象的记录,但它实际上是如何将这些文件存储在磁盘上的呢?它们是作为单个 *.json 文件的集合还是作为一个大文件存储的?我对后者有一种预感,因为MongoDB 文档指出它在具有ext4/xfs 的系统上效果最好,后者更擅长处理大文件。谁能确认一下?
【问题讨论】:
高达 mongodb 3.0 http://blog.mongolab.com/2014/01/how-big-is-your-mongodb/ 如果您在 MongoDB 3.0 中打开wiredtiger 存储引擎,它将使用wiredtiger 存储模型 http://docs.mongodb.org/v3.0/core/storage/#storage-wiredtiger
【讨论】:
BSON 格式的详细文档可以在这里找到:http://bsonspec.org/
【讨论】:
给定的 mongo 数据库在磁盘上被分解为一系列 BSON 文件,大小增加到 2GB。 BSON 是它自己的格式,专为 MongoDB 构建。
这些幻灯片应该可以回答您的所有问题:
http://www.slideshare.net/mdirolf/inside-mongodb-the-internals-of-an-opensource-database
【讨论】:
MongoDB 将磁盘上的数据作为 BSON 存储在您的数据路径目录中,通常是 /data/db。每个集合应该有两个文件,collection.0 存储数据(然后该整数根据需要递增)和 collection.ns 存储命名空间集合的元数据。
【讨论】: