亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

【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

台中县| 泾源县| 和硕县| 西乌| 邳州市| 无锡市| 普宁市| 海淀区| 岳池县| 西盟| 内黄县| 丰原市| 辽阳县| 封丘县| 耒阳市| 渝中区| 中阳县| 孝义市| 历史| 龙里县| 桂平市| 浠水县| 长葛市| 天津市| 同德县| 临潭县| 钟祥市| 汉沽区| 渝中区| 德清县| 基隆市| 新邵县| 仲巴县| 五大连池市| 贡觉县| 松江区| 崇州市| 灵武市| 仪征市| 公安县| 万宁市|