mongodb "_id"索引是否始终保存在缓存中?



我有一个mongodb数据库,它有多个集合。还有一个额外的集合,它更像是系统中发生的所有事件的日志。我想知道,当我有一个很少使用的大集合时,当对该集合没有操作时,该集合的"_id"索引是否也会被放入RAM?或者它只是在磁盘上等待,直到执行读取操作。我主要关心的是这个集合的大小是否会影响其他查询的性能(因为集合的大小比可用RAM大几倍(。

它们将以LRU为基础进行交换。

在任何情况下,索引都不必完全放入RAM。如果索引字段的值随着每次插入而增加,并且大多数查询都选择最近添加的文档;那么MongoDB只需要将索引中保存最新或"最右边"值的部分保存在RAM中。

为了确保该索引适合RAM,您不仅必须有超过该数量的可用RAM,而且必须有可用于工作集其余部分的RAM。索引和工作集必须能够同时容纳在内存中。

https://docs.mongodb.com/manual/tutorial/ensure-indexes-fit-ram/#indexing-右手

最新更新