我想在我的新项目中使用mongodb.问题是,mongo使用pre-alocate文件:
每个数据文件都预先分配到特定大小.(这样做是为了防止文件系统碎片,以及其他原因.)数据库的第一个文件名是.0,然后是.1等.0将是64MB,.1 128MB等等,最多2GB.一旦文件大小达到2GB,每个连续文件也是2GB.因此,如果最后存在的数据文件是1GB,那么如果最近创建该文件可能是90%为空.
从这里:http://www.mongodb.org/display/DOCS/Excessive+Disk+Space
它的正常情况下有许多2GB文件.有一个--smallfiles开关,将此文件限制为512MB
--smallfiles =>使用较小的初始文件大小(16MB)和最大大小(512MB)
我想知道使用smallfiles对生产有好处吗?它的缺点是什么?
有noprealloc开关,但它的生产不好.但是没有关于小文件的说明.
如果你正在创建一大堆数据库,通常只会使用smallfiles,如果你只是在几个数据库中运行,那么它就不会让你节省下来.
对于拥有许多DBS(实际上受益于小文件)的客户,我们没有看到任何性能问题.但是,与其他安装相比,它们的活动水平通常较低.基于Mongo正在做什么,做一些操作可能会稍微慢些但我认为你不会注意到.