[英]Mongodb query slow response time
我正在使用靈活模式的項目。 我已經設置了本地mongodb服務器,並在節點內部使用了mongoose。
有一個有趣的擴展問題,想知道這些響應時間是否正常。 如果查詢返回50個文檔,我需要5到10秒的時間讓mongo響應。 在同一集合中,返回2個文檔的查詢以毫秒為單位。
這不是很慢的連接,因為它是本地的,想知道是否有人對導致此問題的原因有所了解。
我正在使用OS X和mongo 3.0.1
編輯:目前,文檔幾乎是空的,只有一個或兩個屬性。
編輯:文檔的總數並不重要,只是返回的大小。 如果有51個文檔,其中50個像{_id: "...", _schema:"bar"}
和1 {_id:"...", _schema: "foobar" }
collection.find({_schema:"bar"})
{_id:"...", _schema: "foobar" }
然后是collection.find({_schema:"bar"})
需要幾秒鍾, collection.find({_schema:"foobar"})
不需要時間。
解釋輸出:
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "mean-dev.documentmodels",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [ ]
},
"winningPlan" : {
"stage" : "COLLSCAN",
"filter" : {
"$and" : [ ]
},
"direction" : "forward"
},
"rejectedPlans" : [ ]
},
"serverInfo" : {
"host" : "Sams-MBP.local",
"port" : 27017,
"version" : "3.0.1",
"gitVersion" : "nogitversion"
},
"ok" : 1
不,它不需要那么多時間。
問題可能出在查詢的操作中(投影,排序,地理搜索,分組等)。 解決此問題的最佳方法是創建索引以加快此類查詢的速度。
要在_schema
字段上創建索引, _schema
在mongodb中執行以下命令:
db.collection.ensureIndex({"_schema":1});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.