GridFS和标准集合,内存使用情况

时间:2012-01-11 07:11:12

标签: mongodb gridfs nosql

据我所知,MongoDB针对所有数据都适合内存的情况进行了优化。据我所知,GridFS使用标准集合和所有标准存储方法。是吗?

这是否意味着存储大量数据(我的情况下的图像),当前内存量更大,它会从内存中找出我的真实数据?

也许MongoDB足够聪明,不能为GridFS集合提供较少的优先级?

1 个答案:

答案 0 :(得分:2)

MongoDB使用内存映射文件来管理其数据文件。如果您使用数据,它将保留在内存中。如果你不使用它,它最终将刷新到磁盘(并在下次请求时回读)。如果您需要读取所有数据,最好将其全部放入RAM中,否则系统可能会进入致命的交换螺旋(当然取决于您的负载)。

如果您只是存储数据并且不做太多,MongoDB将只使用一小部分内存。例如,在我的一个项目中,总数据集大小超过300 GB,mongo只占用800 MB RAM(因为我几乎不读取数据,只写它)。