MongoDB中的内存映射文件

MongoDB中的内存映射文件,mongodb,Mongodb,当我们说MongoDB使用内存映射文件时,是指将整个数据集加载到内存中还是仅加载索引?我需要一个清晰的图片,说明内存映射文件在MongoDB中是如何工作的。不,数据不会立即或急切地加载到内存中,而是通过访问模式加载到所谓的工作集内存中 因此,如果你质疑: db.c.find({a:1}) 如果在没有覆盖查询的情况下在上有一个索引,则会对匹配查询的文档以及为满足查询而需要查询的索引范围进行筛选 但它只会在您转到实际查询时执行此操作 您可以通过使用诸如touch之类的命令或使用将实际加载到工作集(

当我们说MongoDB使用内存映射文件时,是指将整个数据集加载到内存中还是仅加载索引?我需要一个清晰的图片,说明内存映射文件在MongoDB中是如何工作的。

不,数据不会立即或急切地加载到内存中,而是通过访问模式加载到所谓的工作集内存中

因此,如果你质疑:

db.c.find({a:1})
如果在没有覆盖查询的情况下在上有一个索引,则会对匹配查询的文档以及为满足查询而需要查询的索引范围进行筛选

但它只会在您转到实际查询时执行此操作

您可以通过使用诸如touch之类的命令或使用将实际加载到工作集(更确切地说是RAM)的最常见查询脚本,使MongoDB急切地加载到驻留内存中,而不是实际内存中,但足够接近


mmap映射到所谓的虚拟内存,这本质上是操作系统的内存映射,但是,它可以比实际内存大很多,正如前面提到的,文档可以提供比我这里更多的内容:还要了解更多关于虚拟内存的信息:

根据网站指南,这确实有点太宽泛,也不是一个真正的编程问题。也许最好的解释是通过阅读。官方文档是一个很好的学习来源,如果您有更具体的问题,请随时在这里提问。