MongoDB索引/ RAM关系


只怕再见是故人
2025-03-11 08:42:00 (28天前)
  1. 索引在


内存
</跨度>
。这对我来说没有意义,因为我的索引很容易大于可用数量

内存
</跨度>

任何人都可以分享一些关于索引的见解/

内存
</跨度>
关系以及当单个索引和所有索引都超过可用大小时会发生什么

内存
</跨度>

3 条回复
  1. 0# 青年@ | 2019-08-31 10-32



    MongoDB保留了RAM中索引的功能。他们将以LRU为基础进行交换。您经常会看到一些文档,建议您将“工作集”保留在内存中:如果您实际访问的索引部分适合内存,那么您会没事的。


  2. 1# 独奏♪ | 2019-08-31 10-32



    它是工作集大小加上MongoDB的索引,理想情况下应始终驻留在RAM中,即可用RAM的数量理想情况下应至少为工作集大小加上索引的大小加上操作系统的其余部分(操作系统)和在同一台机器上运行的其他软件需要。如果可用的RAM小于那个,那么就会发生LRUing,因此我们可能会显着减速。
    要记住的一件事是,在索引btree中缓存桶,而不是单独的索引键,即如果我们在索引中包含统一的键分布(包括历史数据),我们可能需要更多的RAM中的索引有一个复合索引的时间加上别的东西。对于后者,同一btree桶中的密钥通常来自同一时代,所以这个警告不会发生。
    此外,我们应该记住,我们在BSON中的字段名称存储在记录中(但不是索引),所以如果我们处于内存压力下,它们应该保持简短。



    那些对MongoDB当前虚拟内存使用感兴趣的人(当然也是关于RAM的)可以看看mongod的状态。



    @看到

    http://www.markus-gattol.name/ws/mongodb.html#sec7


登录 后才能参与评论