MongoDB 操作手冊CRUD 查詢效能分析

來源:互聯網
上載者:User

標籤:mongodb   查詢   效能   分析   

分析查詢效能explain() cursor方法允許觀察查詢系統執行的操作。這個方法對於分析高效查詢和決定如何使用索引進行查詢是十分有用的。這個方法檢測的是查詢的操作,而不是查詢執行時間。因為這個方法嘗試多個查詢計劃,它並不能準確的反映出查詢執行時間。
評估一個查詢的效能使用explain()方法,調用find()返回的指標的該方法即可。
例:
在type欄位建立索引
db.testData.ensureIndex({‘type‘:1});
評估一個在type欄位上的查詢。
db.testData.find({type:‘food‘}).explain()
結果如下:
{
"cursor" : "BtreeCursor type_1",
"isMultiKey" : false,
"n" : 3,
"nscannedObjects" : 3,
"nscanned" : 3,
"nscannedObjectsAllPlans" : 3,
"nscannedAllPlans" : 3,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 1,
"nChunkSkips" : 0,
"millis" : 64,
"indexBounds" : {
"type" : [
[
"food",
"food"
]
]
},
"server" : "TT:27017",
"filterSet" : false
}
cursor值為BtreeCursor表名查詢使用了索引。
查詢返回n=3條記錄。
為了返回這五條記錄,查詢掃描了nscanned=3條記錄,然後讀到了nscannedObjects=3條完整的記錄,如果沒有索引,將掃描所有記錄。
比較索引查詢效能手動比較一個使用多個欄位的查詢,可以聯合使用hint()和explain()方法。
例:評估使用不同欄位的索引
db.testData.find({type:‘food‘}).hint({type:1}).explain();
結果:
{
"cursor" : "BtreeCursor type_1",
"isMultiKey" : false,
"n" : 3,
"nscannedObjects" : 3,
"nscanned" : 3,
"nscannedObjectsAllPlans" : 3,
"nscannedAllPlans" : 3,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 40,
"indexBounds" : {
"type" : [
[
"food",
"food"
]
]
},
"server" : "TT:27017",
"filterSet" : false
}
db.testData.find( { type: ‘food‘ } ).hint( { type: 1, name: 1 } ).explain();
//這句話執行不成功,待解決
這些返回的統計結果忽略了使用各自的索引的執行的查詢。
注意:如果不適用hint()執行explain()方法,查詢最佳化工具將重新評估查詢,並且在返回查詢統計之前運行多索引查詢。
更詳細的explain輸出,查看explain-results。

MongoDB 操作手冊CRUD 查詢效能分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.