Mongodb mongo db—smallfiles交换机的缺点

Mongodb mongo db—smallfiles交换机的缺点,mongodb,Mongodb,我想在我的新项目中使用mongodb。问题是,mongo使用预解析文件: 每个数据文件都预先分配到特定的大小。(除其他原因外,这样做是为了防止文件系统碎片。)数据库的第一个文件名是.0,然后是.1等。0将是64MB、.112MB等,最高可达2GB。一旦文件大小达到2GB,每个后续文件也将达到2GB。因此,如果存在的最后一个数据文件是(比如)1GB,那么如果该文件是最近创建的,则该文件可能90%为空 从这里开始: 很多2GB文件中没有任何内容是很正常的。有一个--smallfiles开关,将此文件

我想在我的新项目中使用mongodb。问题是,mongo使用预解析文件:

每个数据文件都预先分配到特定的大小。(除其他原因外,这样做是为了防止文件系统碎片。)数据库的第一个文件名是.0,然后是.1等。0将是64MB、.112MB等,最高可达2GB。一旦文件大小达到2GB,每个后续文件也将达到2GB。因此,如果存在的最后一个数据文件是(比如)1GB,那么如果该文件是最近创建的,则该文件可能90%为空

从这里开始:

很多2GB文件中没有任何内容是很正常的。有一个--smallfiles开关,将此文件限制为512MB

--smallfiles=>使用较小的初始文件大小(16MB)和最大文件大小(512MB)

我想知道使用smallfiles对生产有好处吗?它的缺点是什么


没有REALLOC开关,但在生产中效果不佳。但是没有关于smallfiles的说明。

如果您要创建一大堆数据库,如果您只使用少数几个数据库,那么您通常只会使用smallfiles,这样做并不能节省您的时间来处理这些数据库


对于拥有许多数据库的客户(实际上受益于小文件),我们没有发现任何性能问题。不过,与其他安装相比,它们的活动级别通常较低。根据Mongo正在做的事情,执行某些操作可能会稍微慢一点,但我认为您永远不会注意到。

此外,如果在AWS云中运行,并使用m3.small实例和SSD,您的存储空间将限于4GB。设置此选项将允许您拥有一个小型SSD支持的mongodb节点。对于小任务来说可能已经足够了

这里还有一个注意事项,即——smallfiles在仲裁器上很好——仲裁器在启动时通常会预先分配很多文件(例如日志),因为在启动时它还不知道它是仲裁器。@AdamC很好,但您也可以打开日志记录(nojournal=true)作为一个仲裁者,我的博客/论坛空间太小了,我在20GB中获得了3GB的免费空间,所以smallfiles似乎是个好主意,考虑在小型博客/论坛上使用smallfiles,然后随着您的发展,在更大的网站上切换到非smallfiles