我有一个包含两个字段的简单集合:时间戳和值(浮点数)。我需要获取时间戳范围内的最小值和最大值。
该集合包含大约 10000000 个文档。
我添加了索引,例如
{"value" : 1, "timestamp" : 1}
和 {"value" : -1, "timestamp" : 1}
。
类似的查询
db.getCollection('Sample').find({'timestamp' : {'$gte': 1714284644, '$lte': 1745820644}}).sort({'value':-1}).limit(1)
花了大约 1 秒钟。无限制计数显示 525600 个文档。
“解释”显示该查询被其中一个索引覆盖。 IXSCAN 占用大部分时间。
有什么办法可以加快这个查询的速度吗?