日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
MongoDB$explain與$hint:查詢分析
查詢分析是衡量數據庫和索引設計有效性的一個非常重要的方式。下面我們來介紹一下比較常用的 $explain 和 $hint 查詢。

成都創(chuàng)新互聯是一家專注于網站設計制作、成都網站設計與策劃設計,寧河網站建設哪家好?成都創(chuàng)新互聯做網站,專注于網站建設十年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:寧河等地區(qū)。寧河做網站價格咨詢:13518219792

$explain

$explain 運算符提供了有關查詢、索引使用以及查詢統(tǒng)計的相關信息,這在索引優(yōu)化方面非常有用。《MongoDB覆蓋索引查詢》一節(jié)中我們已經使用以下代碼在 users 集合中的 gender 和 name 字段上的創(chuàng)建了索引:

> db.users.createIndex({gender:1, name:1})
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 1,
        "numIndexesAfter" : 2,
        "ok" : 1
}

在 mongo shell 中,您可以通過 $explain 的輔助方法 explain() 來檢索查詢的相關信息:

> db.users.find({gender:"M"}, {name:1,_id:0}).explain()

上面的 explain() 查詢會返回以下分析結果:

{
        "queryPlanner" : {
                "plannerVersion" : 1,
                "namespace" : "bianchengbang.users",
                "indexFilterSet" : false,
                "parsedQuery" : {
                        "gender" : {
                                "$eq" : "M"
                        }
                },
                "winningPlan" : {
                        "stage" : "PROJECTION",
                        "transformBy" : {
                                "name" : 1,
                                "_id" : 0
                        },
                        "inputStage" : {
                                "stage" : "IXSCAN",
                                "keyPattern" : {
                                        "gender" : 1,
                                        "name" : 1
                                },
                                "indexName" : "gender_1_name_1",
                                "isMultiKey" : false,
                                "multiKeyPaths" : {
                                        "gender" : [ ],
                                        "name" : [ ]
                                },
                                "isUnique" : false,
                                "isSparse" : false,
                                "isPartial" : false,
                                "indexVersion" : 2,
                                "direction" : "forward",
                                "indexBounds" : {
                                        "gender" : [
                                                "[\"M\", \"M\"]"
                                        ],
                                        "name" : [
                                                "[MinKey, MaxKey]"
                                        ]
                                }
                        }
                },
                "rejectedPlans" : [ ]
        },
        "serverInfo" : {
                "host" : "LAPTOP-MDE57TIS",
                "port" : 27017,
                "version" : "4.0.10",
                "gitVersion" : "c389e7f69f637f7a1ac3cc9fae843b635f20b766"
        },
        "ok" : 1
}

關于上面的運行結果,有以下幾點需要說明:

  • indexOnly:若字段的值為 true,則表示此查詢中使用了索引;
  • cursor:指定使用的游標類型,BTreeCursor 類型表示使用了索引,還提供了所用索引的名稱,BasicCursor 表示在不使用任何索引的情況下進行了完全掃描;
  • n:表示返回的匹配文檔數;
  • nscannedObjects:表示掃描文檔的總數;
  • nscanned:表示掃描的文檔或索引條目的總數。

$hint

$hint 運算符(也叫“強制查詢優(yōu)化器”)能夠使用指定的索引來進行查詢,以此來測試查詢的性能。當您想要測試具有不同索引的查詢性能時,此功能特別有用。在 mongo shell 中您可以使用 $hint 的輔助方法 hint() 來使用此功能,例如下面的查詢指定了要使用 gender 和 name 字段的索引:

> db.users.find({gender:"M"},{name:1, _id:0}).hint({gender:1, name:1})
{ "name" : "bianchengbang" }

使用 explain() 來分析以上查詢:

> db.users.find({gender:"M"},{name:1, _id:0}).hint({gender:1, name:1}).explain()
{
        "queryPlanner" : {
                "plannerVersion" : 1,
                "namespace" : "bianchengbang.users",
                "indexFilterSet" : false,
                "parsedQuery" : {
                        "gender" : {
                                "$eq" : "M"
                        }
                },
                "winningPlan" : {
                        "stage" : "PROJECTION",
                        "transformBy" : {
                                "name" : 1,
                                "_id" : 0
                        },
                        "inputStage" : {
                                "stage" : "IXSCAN",
                                "keyPattern" : {
                                        "gender" : 1,
                                        "name" : 1
                                },
                                "indexName" : "gender_1_name_1",
                                "isMultiKey" : false,
                                "multiKeyPaths" : {
                                        "gender" : [ ],
                                        "name" : [ ]
                                },
                                "isUnique" : false,
                                "isSparse" : false,
                                "isPartial" : false,
                                "indexVersion" : 2,
                                "direction" : "forward",
                                "indexBounds" : {
                                        "gender" : [
                                                "[\"M\", \"M\"]"
                                        ],
                                        "name" : [
                                                "[MinKey, MaxKey]"
                                        ]
                                }
                        }
                },
                "rejectedPlans" : [ ]
        },
        "serverInfo" : {
                "host" : "LAPTOP-MDE57TIS",
                "port" : 27017,
                "version" : "4.0.10",
                "gitVersion" : "c389e7f69f637f7a1ac3cc9fae843b635f20b766"
        },
        "ok" : 1
}

網站欄目:MongoDB$explain與$hint:查詢分析
URL地址:http://m.5511xx.com/article/dhcioec.html