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

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

新聞中心

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

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

$explain

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

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

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

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

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

{
        "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
}

關(guān)于上面的運行結(jié)果,有以下幾點需要說明:

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

$hint

$hint 運算符(也叫“強制查詢優(yōu)化器”)能夠使用指定的索引來進行查詢,以此來測試查詢的性能。當(dāng)您想要測試具有不同索引的查詢性能時,此功能特別有用。在 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
}

網(wǎng)頁標(biāo)題:MongoDB$explain與$hint:查詢分析
瀏覽路徑:http://m.5511xx.com/article/dhcioec.html