有沒有一種方法可以跟蹤MongoDB中的「查詢」性能?特別測試索引或子文檔?跟蹤MongoDB性能?
在sql中,您可以運行查詢,查看執行時間和其他分析指標。我有一個巨大的mongoDB集合,想要嘗試不同的變化和索引,不知道如何測試它,會很高興看到需要多長時間才能找到一個記錄..(我是MongoDB中的新手)。謝謝
有沒有一種方法可以跟蹤MongoDB中的「查詢」性能?特別測試索引或子文檔?跟蹤MongoDB性能?
在sql中,您可以運行查詢,查看執行時間和其他分析指標。我有一個巨大的mongoDB集合,想要嘗試不同的變化和索引,不知道如何測試它,會很高興看到需要多長時間才能找到一個記錄..(我是MongoDB中的新手)。謝謝
這裏有兩件事情,你可能會熟悉。
解釋計劃上解釋
Here are some basic docs。運行解釋與db.foo.find(query).explain()
一樣簡單。 (請注意,這實際上運行的查詢,所以如果您的查詢很慢,這將是太)
要了解輸出,您需要檢查下面的慢日誌中的一些文檔。您基本上會獲得關於「掃描了多少索引」,「找到多少索引」等詳細信息。與此類性能細節的情況一樣,解釋真的取決於您。閱讀上面和下面的文檔,指出你正確的方向。
慢速日誌
默認情況下,緩慢日誌是活動與100ms的閾值。 Here's a link到分析的完整文檔。幾個關鍵點,讓你開始:
get/set方法分析:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
見慢查詢:
db.system.profile.find()
MongoDB中有一個查詢分析器可以打開。 請參閱:http://www.mongodb.org/display/DOCS/Database+Profiler
請參閱此頁面,特別是另請參閱部分。 http://www.mongodb.org/display/DOCS/Database+Profiler – 2010-12-09 16:59:43
只是在幾年後添加:現在「新」推薦的使用解釋方式是:db.foo.explain()。find(query)。在「查找」之前注意「解釋」。另外,指定explain(true)以獲取更多詳細信息,例如所檢查文檔的數量:db.foo.explain(true).find(query);鍵入db.foo.explain()。幫助列出您可以使用解釋的查詢。 – alexbt 2016-08-24 12:35:03