中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【MongoDB學習筆記21】MongoDB的復合索引

發布時間:2020-06-15 20:16:41 來源:網絡 閱讀:2209 作者:StanlyCheng 欄目:MongoDB數據庫

索引的值是按照一定順序排列的,因此使用索引鍵對文檔進行搜索排序比較快;但是只有首先使用索引進行排序時,索引才有用;

例如下面的排序里,“username”上的索引就沒有起作用:

> db.users.find().sort({"age":1,"username":1})

 
上面的命令中先根據age排序,在根據username排序,所以username作用并不大。為了優化這個排序,需要在age和username上建立索引:

> db.users.ensureIndex({"age":1,"username":1})


這樣就在users集合上建立了一個復合索引(compound index),復合索引就是一個建立在多個字段上的索引。

 

一、選擇索引的方向

索引默認是升序的,在多索引查詢的時候,可能需要讓索引鍵的方向不同。例如:

> db.users.ensureIndex({"age":1,"username":-1})

或者

> db.users.ensureIndex({"age":-1,"username":1})

二者是等價的;

年齡按照0-9的順序排序,在每個年齡分組中安裝Z-A的順序排列;或者用戶名按照A-Z的順利排序,在每個用戶分組中按照9-0排序的。

 

二、使用隱式索引

復合索引在對不同的查詢可以表現為不同的索引。如果有一個{"age":1,"username":1}索引,age字段會自動被排序,好似有個{“age”:1}的索引;

可以推論,如果有{“a”:1,”b”:1……..”z”:1}的索引,就會有{“a”:1},{“a”:1,”b”:1},{“a”:1,”b”:1,“c”:1}….一系列的索引;

但是,{“b”:1}或者{”b”:1,“c”:1}就不能作為索引來優化查詢,意味著只能只能按照索引順序來優化查詢。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

名山县| 漯河市| 永德县| 湖州市| 巴彦淖尔市| 广饶县| 南通市| 禄劝| 盐源县| 利川市| 鄂伦春自治旗| 偏关县| 临潭县| 张北县| 潼关县| 大安市| 皮山县| 山东省| 弥渡县| 呼伦贝尔市| 富宁县| 冕宁县| 凉山| 柏乡县| 鹤岗市| 修武县| 龙泉市| 永善县| 荣昌县| 大埔县| 桐庐县| 登封市| 黄浦区| 广河县| 韶关市| 繁昌县| 安康市| 莱州市| 台湾省| 葫芦岛市| 成安县|