1. 程式人生 > 其它 >Mongodb入門4

Mongodb入門4

今天學習一下MongoDB資料庫的索引.

因為養的魚生病了,所以抽空晚上學習記錄一下.

這裡借用一下菜鳥教程的原文:

索引通常能夠極大的提高查詢的效率,如果沒有索引,MongoDB在讀取資料時必須掃描集合中的每個檔案並選取那些符合查詢條件的記錄。

這種掃描全集合的查詢效率是非常低的,特別在處理大量的資料時,查詢可以要花費幾十秒甚至幾分鐘,這對網站的效能是非常致命的。

索引是特殊的資料結構,索引儲存在一個易於遍歷讀取的資料集合中,索引是對資料庫表中一列或多列的值進行排序的一種結構 

話不多說,索引的基本shell 命令如下:

// 建立索引

1. 版本3.0之前用 db.collectionName.ensureIndex({key:value})
2. 版本3.0之後用 db.collectionName.createIndex({key:value})
// 查詢索引
db.collectionName.getIndexes()
// 刪除索引
db.collectionName.dropIndex("索引名稱")

看一下在200萬條資料下,索引的優化結果:

Tip:我故意從大概50000的位置找的一個數據,然後我在沒有索引的情況下查一下看看

然後我這邊給username設定為索引:

然後再次查詢:

可以看到,查詢速度快了200倍左右,這很致命

不過,我們也不能濫用索引,因為索引會消耗記憶體和硬碟資源的