《MongoDB 索引》要點:
本文介紹了MongoDB 索引,希望對您有用。如果有疑問,可以聯系我們。
相關主題:非關系型數據庫
索引通常能夠極大的提高查詢的效率,如果沒有索引,MongoDB在讀取數據時必需掃描集合中的每個文件并選取那些符合查詢條件的記錄.
這種掃描全集合的查詢效率是非常低的,特別在處置大量的數據時,查詢可以要花費幾十秒甚至幾分鐘,這對網站的性能是非常致命的.
索引是特殊的數據布局,索引存儲在一個易于遍歷讀取的數據集合中,索引是對數據庫表中一列或多列的值進行排序的一種布局
ensureIndex() 辦法
MongoDB使用 ensureIndex() 辦法來創建索引.
語法
ensureIndex()辦法基本語法格式如下所示:
>db.COLLECTION_NAME.ensureIndex({KEY:1})
語法中 Key 值為你要創立的索引字段,1為指定按升序創立索引,如果你想按降序來創立索引指定為-1即可.
實例
>db.col.ensureIndex({"title":1})>
ensureIndex() 辦法中你也可以設置使用多個字段創建索引(關系型數據庫中稱作復合索引).
>db.col.ensureIndex({"title":1,"description":-1})>
ensureIndex() 接管可選參數,可選參數列表如下:
Parameter | Type | Description |
---|---|---|
background | Boolean | 建索引過程會阻塞其它數據庫操作,background可指定以后臺方式創建索引,即增加 "background" 可選參數. "background" 默認值為false. |
unique | Boolean | 建立的索引是否唯一.指定為true創建唯一索引.默認值為false. |
name | string | 索引的名稱.如果未指定,MongoDB的通過連接索引的字段名和排序順序生成一個索引名稱. |
dropDups | Boolean | 在建立唯一索引時是否刪除重復記錄,指定 true 創建唯一索引.默認值為 false. |
sparse | Boolean | 對文檔中不存在的字段數據不啟用索引;這個參數需要特別注意,如果設置為true的話,在索引字段中不會查詢出不包括對應字段的文檔..默認值為 false. |
expireAfterSeconds | integer | 指定一個以秒為單位的數值,完成 TTL設定,設定集合的生存時間. |
v | index version | 索引的版本號.默認的索引版本取決于mongod創建索引時運行的版本. |
weights | document | 索引權重值,數值在 1 到 99,999 之間,表示該索引相對于其他索引字段的得分權重. |
default_language | string | 對于文本索引,該參數決定了停用詞及詞干和詞器的規則的列表. 默認為英語 |
language_override | string | 對于文本索引,該參數指定了包括在文檔中的字段名,語言覆蓋默認的language,默認值為 language. |
實例
在后臺創立索引:
db.values.ensureIndex({open: 1, close: 1}, {background: true})
通過在創立索引時加background:true 的選項,讓創立工作在后臺執行
如您還有不明確的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
《MongoDB 索引》是否對您有啟發,歡迎查看更多與《MongoDB 索引》相關教程,學精學透。維易PHP學院為您提供精彩教程。