執行計劃分析 explain()
explain()爲aggregate()、count()、distinct()、find()、remove()、和update()這些方法提供查詢計劃分析。
使用格式
db.collection.explain().<(method…)>
還可以通過cursor.explain()和$explain執行。
explain(verbosity mode)中可以接以下參數以得到不同的返回。verbosity mode翻譯過來就是詳細模式。
關於查詢計劃的內容會在以後的博客講解。
【注】aggregate() 只能使用queryPlanner模式,所以其不用指定該參數。
輸出項含義
參考官方文檔的解釋,
https://docs.mongodb.com/manual/reference/explain-results/
指定索引 hint()
hint(index)方法可以令查詢使用指定索引,從而覆蓋查詢優化器選擇的索引。
index可以是String或Document。
hint的一個特殊用法是hint({nature:1})或hint({ nature:-1}),前者強制查詢順序掃描,後者強制逆序掃描。
例子:
db.users.find().hint( { age: 1 } )
db.users.find().hint( { natural : 1 } )
db.users.find().hint( { natural : -1 } )
參考
https://docs.mongodb.com/manual/reference/method/db.collection.explain/
https://docs.mongodb.com/manual/reference/explain-results/
https://docs.mongodb.com/manual/reference/operator/meta/explain/
https://docs.mongodb.com/manual/reference/method/cursor.explain/