这是我的收藏集,其中包含超过10亿个文档,每个文档的大小为2 KB
sample document
{
"sensor" : "temperature",
"timestamp" : ISODate("2018-02-22T01:55:00Z"),
... some more key values
}
我分别在按键传感器和时间戳上有索引 查找查询
db.collection.find({"sensor":"temperature", "timestamp":{"$gte":ISODate("2018-02-22T00:00:00Z"),
"$lt":ISODate("2018-02-23T00:00:00Z")}})
但是响应大约需要20-30分钟,这需要几分钟,这对于我的应用程序是不可接受的。那么优化此查询的更好方法是什么,它会导致不到30秒的时间(因为如果查询时间超过30秒,猫鼬会返回超时错误)。除了分片之外,还有什么解决方案可以优化查询?