【发布时间】:2016-02-05 10:05:30
【问题描述】:
我有一个查询,它查看按优先级标记的日志条目。
db.logs.find({
environment: "production",
priority: {
$in: ["debug", "info"]
}
}).sort({
timestamp: -1
})
此集合现已超过 3GB,这些查询需要 45 秒 才能返回。
像下面这样的查询,仍然会在一秒钟内返回:
db.logs.find({
environment: "production",
priority: "info"
}).sort({
timestamp: -1
})
我的索引似乎没有任何帮助。这是我尝试过的:
{ "_id" : 1}
{ "timestamp" : -1}
{ "priority" : 1 , "timestamp" : -1}
{ "environment" : 1 , "timestamp" : -1}
{ "environment" : 1 , "priority" : 1 , "timestamp" : -1}
这些似乎都没有帮助我。有什么方法可以基于分组创建索引吗? (即priority: { $in: ["foo", "bar", "bin"] } 的所有消息的索引)
【问题讨论】:
标签: mongodb indexing database-design mongodb-indexes database