我使用的是Mongo 3.4版,存储引擎是WiredTiger。 正如document所说,Mongo确实将缓存用于适合RAM的工作集。
所以我的问题是
答案 0 :(得分:0)
WiredTiger缓存是保留供WiredTiger使用的内存的通用术语。此内存包含未压缩的集合数据,索引,“脏”内容(已修改的文档)等。
回答你的问题:
有什么方法可以检查我的查询结果是否是从缓存中提供的?
任何查询都会导致WiredTiger以未压缩的形式将文档从磁盘加载到其内存部分(所谓的“缓存”)中。因此,所有查询回复均来自“缓存”。
如果我的工作集大于RAM怎么办? Mongo会清除缓存,还是会驱逐一些数据?
它将根据需要从缓存中逐出数据。如果需要驱逐的数据是“脏的”,则还需要将其作为驱逐过程的一部分写入磁盘。
有关了解Mongo缓存机制的良好资源的任何建议
MongoDB文档中对它有一些一般描述:
有关更深入的文档,请参阅WiredTiger documentation。