假设我们有一个包含许多帖子的简单博客。
并且我们定期执行查询,以从title
集合中获取帖子的date
和posts
的列表。
因此,在这种情况下(索引除外),Ram内部将缓存什么?整个文档还是仅_id,标题和日期?
documentation不能清除此内容:
MongoDB将最近使用的数据保留在RAM中。如果您已经创建 查询索引和工作数据集都适合RAM, MongoDB从内存提供所有查询
数据库版本为4.2.8。
答案 0 :(得分:3)
它的工作原理如下:
假设您有4个收藏集。每个都包含2Gig数据。每个集合在索引中包含500Mb的数据。
总共:8Gb数据,2Gb索引。您经常查询一个集合,而对那个集合查询一个特定的查询。您可以假定它会将与您经常执行的查询相关的数据保留在缓存中。它包括索引中的数据以及桌面上与之相关的实际数据。
它不会将结果保留在索引中。因此,它将频繁查询的整个文档和索引数据保留在缓存中。