簡體   English   中英

MongoDB查詢響應時間慢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM