【发布时间】:2020-11-15 18:23:15
【问题描述】:
我收集了大约 5 亿份文档。 每次执行查询时,我都会从该集合中收到一个或多个文档。假设我为每个文档都有一个计数器,每当从查询返回此文档时,我都会将此计数器加 1。在生产中运行系统几个月后,我发现只有 5% 的文档的计数器大于 0(零)。意思是,95% 的文档没有被使用。
我的问题是:基于 95% 的文档未使用这一事实,有没有一种有效的方法来安排这些文档以加快查询执行时间?
在这种情况下,最佳做法是什么?
如果 - 例如 - 我将为每个名为“consumed”的文档添加另一个布尔字段并索引该字段。我可以以某种方式改善查询执行时间吗?
【问题讨论】:
-
你能告诉我们更多关于数据的信息吗?理想情况下,您甚至可以立即在现有列上添加适当的索引。
-
这种情况下当然索引是好的,没有索引,MongoDB必须进行一次集合扫描,可能会慢很多
-
我知道索引以及如何使用它们。我的问题是如何利用我 95% 以上的数据实际上是“垃圾”这一事实来加速结果。 (不。我不能删除“垃圾”,因为我不知道什么是“垃圾”,什么不是)。只有经过几个月的实际生产工作,我才会知道使用了哪些文件。当然,可能会使用未使用的文档。