Mongodb查询执行缓慢
我有一个蒙多布收藏 它包含大约1行和2000行,每个Mongodb查询执行缓慢,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一个蒙多布收藏 它包含大约1行和2000行,每个daily\u details数组包含大约50个条目。我正在查询给定的daily\u details.date范围的所有详细信息,但运行速度非常慢。我也尝试创建索引,但没有成功 db.db_col_his_details.ensureIndex( { "daily_details.date": 1 } ) 查询: db.db_col_his_details.find({ "daily_details.date": ISODate(
daily\u details
数组包含大约50个条目。我正在查询给定的daily\u details.date
范围的所有详细信息,但运行速度非常慢。我也尝试创建索引,但没有成功
db.db_col_his_details.ensureIndex( { "daily_details.date": 1 } )
查询:
db.db_col_his_details.find({
"daily_details.date": ISODate("2014-12-31 18:30:00.000Z")
}).explain()
我正在使用JavaMorphiaAPI进行查询
解释输出:
{
"cursor": "BtreeCursor daily_details.date_1",
"isMultiKey": true,
"n": 1479,
"nscannedObjects": 1479,
"nscanned": 1479,
"nscannedObjectsAllPlans": 1479,
"nscannedAllPlans": 1479,
"scanAndOrder": false,
"indexOnly": false,
"nYields": 0,
"nChunkSkips": 0,
"millis": 11,
"indexBounds": {
"daily_details.date": [
[
ISODate("2014-12-31T18:30:00.000Z"),
ISODate("2014-12-31T18:30:00.000Z")
]
]
},
}
谢谢您的帮助。您能从mongo shell执行查询并添加explain()以查看mongo查询计划吗。这将有助于显示索引是否已被使用或未被检查。索引正在查询中使用。能否提供解释查询的输出以及实际查询?查询的速度有多慢-查询的预期执行时间是多少?mongo DB运行在什么体系结构上?与性能相关的问题总是与什么是快/慢以及什么是可接受的有关…@SagarVimal如果您能够包括您尝试过的所有细节,包括
explain()
方法中的查询和统计信息,以准确显示根据explain输出Etca所花费的毫秒数,这将非常有帮助,执行查询只需11毫秒,速度相当快。