速度是否有pymongo
兩個查詢之間執行的時間差:查詢單場多次執行MongoDB中使用pymongo
db.collection.find({'date': {'$gte': datetime(2000, 01, 01), '$lt': datetime(2016, 11, 23)}})
db.collection.find({'date': {'$gte': datetime(2000, 01, 01)}, 'date': {'$lt': datetime(2016, 11, 23)}})
在我查詢同場兩次的第二種情況。我檢查了使用蒙戈外殼跑.explain("executionStats")
,唯一的區別是在查詢("queryPlanner.parsedQuery"
),其中的第一個是:
"$and" : [
{
"date" : {
"$lt" : ISODate("2016-11-23T00:00:00Z")
}
},
{
"date" : {
"$gte" : ISODate("2000-01-01T00:00:00Z")
}
}
]
這對於第二個:
"date" : {
"$lt" : ISODate("2016-11-23T00:00:00Z")
}
我通過數萬個文檔查詢一個集合,並多次查詢。所以,我需要優化查詢。
是否將「日期」字段編入索引?否則,這應該是提高運營速度的第一步。如果是這樣,兩個解釋計劃之間在指數界限如何應用之間是否存在差異?您可能需要再次運行.explain,並通過'true'選項,例如「.explain(true)」 –
嘿,我在查詢多個字段(大約6)的收集和索引日期不會有太大的幫助。但是'date'字段有一個範圍,所有其他字段只是匹配值相等。所以,我認爲@hyades的回答解釋說我的查詢實際上是錯誤的,並且兩個查詢都不是等價的,因爲我們不能在映射類型(在這種情況下是一個Python字典)中爲兩個不同的值使用相同的鍵。 –