索引建立
1:索引提高查詢速度,降低寫入速度,權衡常用的查詢字段,不必在太多列上建索引
2. 在mongodb中,索引可以按欄位公升序/降序來建立,便於排序
3. 預設是用btree來組織索引檔案,2.4版本以後,也允許建立hash索引.
檢視查詢計畫
db.find(query).explain();
"cursor" : "basiccursor", ----說明沒有索引發揮作用
"nscannedobjects" : 1000 ---理論上要掃瞄多少行
cursor" : "btreecursor sn_1", 用到的btree索引
索引常用命令:
檢視當前索引狀態: db.collection.getindexes();
db.articles.getindexes();
建立普通的單列索引:db.collection.ensureindex(); 1是公升續 2是降續
db.articles.ensureindex()
刪除單個索引
db.collection.dropindex();
一下刪除所有索引
db.collection.dropindexes();
建立多列索引
db.collection.ensureindex();
建立子文件索引
建立唯一索引:
db.collection.ensureindex(, );
建立稀疏索引:
稀疏索引的特點------如果針對field做索引,針對不含field列的文件,將不建立索引.
與之相對,普通索引,會把該文件的field列的值認為null,並建索引.
適宜於: 小部分文件含有某列時.
db.collection.ensureindex(,);
> db.tea.find();
如上內容,最後一行沒有email列,
如果分別加普通索引,和稀疏索引,
對於最後一行的email分別當成null 和 忽略最後一行來處理.
根據來查詢,前者能查到,而稀疏索引查不到最後一行.
建立雜湊索引(2.4新增的)
雜湊索引速度比普通索引快,但是,無法對範圍查詢進行優化.
適宜於---隨機性強的雜湊
db.collection.ensureindex();
重建索引
乙個表經過很多次修改後,導致表的檔案產生空洞,索引檔案也如此.
可以通過索引的重建,減少索引檔案碎片,並提高索引的效率.
類似mysql中的optimize table
db.collection.reindex()
mongodb建立索引
mongodb 提供了多樣性的索引支援,索引資訊被儲存在system.indexes 中,且預設總是為 id建立索引,它的索引使用基本和mysql 等關係型資料庫一樣。其實可以這樣說說,索引是凌駕於資料儲存系統之上的另一層系統,所以各種結構迥異的儲存都有相同或相似的索引實現及使用介面並不足為 奇。在...
MongoDB索引管理 索引的建立 檢視 刪除
索引是提高查詢查詢效率最有效的手段。索引是一種特殊的資料結構,索引以易於遍歷的形式儲存了資料的部分內容 如 乙個特定的字段或一組字段值 索引會按一定規則對儲存值進行排序,而且索引的儲存位置在記憶體中,所在從索引中檢索資料會非常快。如果沒有索引,mongodb必須掃瞄集合中的每乙個文件,這種掃瞄的效率...
mongodb建立2D索引
1 mongodb支援二維空間索引,這是設計時考慮到基於位置的查詢。如果需要使用這種索引,應確定物件中儲存的字段是子物件或陣列,前兩個元素為x,y座標 2 插入資料 db.location.insert 3 建立索引 db.location.ensuerindex 4 near查詢 db.locat...