Mongodb的索引

來源:互聯網
上載者:User

標籤:建立   targe   rac   sort   組合   key   system   查看   mod   

1. 簡單介紹
索引是為了加速查詢。

假設沒有索引,mongodb在查詢時會做表掃描,假設集合非常大時。這個查詢會非常慢。一般對建立查詢時的鍵都建立索引。


為排序欄位建立索引。假設對未建立索引的欄位sort,mongodb會將全部的資料取到記憶體中來排序,假設集合大到不能在記憶體中排序,則mongodb會報錯。


2. mongodb建立索引
建立索引使用ensureIndex命令。

> db.people.ensureIndex({"username" : 1});
上面語句對people集合的username鍵做了索引。
3. 複合式索引
對於組合查詢或排序,建立複合式索引。
> db.people.ensureIndex({"date" : -1, "username" : 1});
索引鍵的1或者-1,表示索引建立的順序。1為升序, -1為倒序。

假設索引僅僅有一個鍵,則方向無關緊要。
4. 內嵌文檔建立索引
為blog集合的評論依照時間建立索引:

> db.blog.ensureIndex({"comments.date" : 1});

5. 唯一索引
唯一索引確保集合中的每一個鍵都是唯一值。

> db.people.ensureIndex({"username" : 1}, {"uniqe" : true});
對已有的集合建立唯一索引時。有可能已經有反覆值了,這樣會建立索引失敗。dropDups會保留第一個文檔,刪除後面反覆的值。

> db.people.ensureIndex({"username" : 1}, {"unique" : true, "dropDups" : true});

6. 查看建立的索引
索引放在system.indexes集合中。
> db.system.indexes.find();
能夠查看索引的key, 名稱。屬於哪個集合。
7. 刪除索引
通過索引的名稱。使用dropIndexes能夠刪除索引。

索引名稱通過system.indexes來查詢。

> db.user.dropIndexes({"username_1" : 1});

地址:http://blog.csdn.net/yonggang7/article/details/28100855

Mongodb的索引

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.