Mongodb 在文档不存在的情况下获取文档的性能

问题描述

我们在 mongodb 中存储了大量数据,假设有 30M 文档。而且这些文件不会经常被修改。有大量的读取查询(~15k qps)。由于我们用例的性质,其中许多查询(通过 _id 字段)将导致空搜索结果

我想了解 mongodb 是否进行了某种优化以检测 db,index 中是否没有文档。是否有任何插件可以启用此功能?我看到的其他选项是使用应用程序级布隆过滤器,但这将是另一部分需要维护。 AFAIK HBASE 支持布隆过滤器以查看文档是否存在。

解决方法

查找不存在的文档是查找文档的最坏情况。与现实生活中一样,如果您要查找的内容不存在,那么您将需要更多时间来检查所有位置,而不是该内容在某个时刻存在。

所有查找优化同样适用于查找最终不存在的文档(索引、分片键等)。