1.索引是否始终存在于RAM中?1.因此,扫描索引是否需要首先从磁盘检索索引?编辑日期:我的问题更多的是关于MongoDB是否总是将索引保存在RAM上,假设有足够的空间。因为如果实际数据不是最近的,它们就会被从RAM中推出来,为最近访问的数据腾出空间。索引也是这样吗?索引是否会根据最近的时间被推出来?或者MongoDB是否优先处理索引,如果有足够的空间,就总是将其保存在RAM中?
e3bfsja21#
这一点无法保证。MongoDB确实将索引存储在与文档相同的缓存中,这确实驱逐了LRU。它不将整个结构加载到内存中,而是在需要时加载页,因此内存中索引的数量将取决于访问索引的方式。索引确实有一定的优先级,但这不是绝对的,因此索引页可以被逐出。对集合的插入可能需要更新所有索引,因此可以合理地假设,任何不完全空闲的集合都至少该高速缓存中具有每个索引的根页。
1条答案
按热度按时间e3bfsja21#
这一点无法保证。
MongoDB确实将索引存储在与文档相同的缓存中,这确实驱逐了LRU。
它不将整个结构加载到内存中,而是在需要时加载页,因此内存中索引的数量将取决于访问索引的方式。
索引确实有一定的优先级,但这不是绝对的,因此索引页可以被逐出。
对集合的插入可能需要更新所有索引,因此可以合理地假设,任何不完全空闲的集合都至少该高速缓存中具有每个索引的根页。