做視頻課程網(wǎng)站免費收錄網(wǎng)站推廣
類似關(guān)系型數(shù)據(jù)庫,mongodb也建立自己的一套索引機制和查詢優(yōu)化方法。本文簡單介紹mongodb的索引。后續(xù)文章講詳細介紹索引的操作,監(jiān)控和查詢優(yōu)化方法等。
索引
索引,是一組按照特殊結(jié)構(gòu)排列的,方便檢索的數(shù)據(jù)。索引中保存了集合中的一小部分數(shù)據(jù)。Mongodb,按照系統(tǒng)默認和用戶指定的列名稱建立索引。Mongodb索引使用B tree結(jié)構(gòu)保存。
索引保存了一個字段或多個字段的數(shù)據(jù)。并按照指定字段的順序排列。按照有順序的索引排列數(shù)據(jù)。Mongodb可以快速匹配所需要查詢的數(shù)據(jù),或者匹配在某個閾值區(qū)間的數(shù)據(jù)。另外,基于索引定義的順序,mongodb能夠快速返回排序后的結(jié)果。
索引的作用
為數(shù)據(jù)集合添加索引,可以提高查詢效率,限制查詢中檢索文檔的數(shù)量,提高排序的效率。沒有索引,mongodb需要查詢數(shù)據(jù)集合中的每一個文檔,來返回所需要的數(shù)據(jù)。
索引的副作用
在提高查詢效率的同時,索引也帶來了一些副作用。每一次數(shù)據(jù)的插入和更新,都會引起索引的更新。構(gòu)建新的索引過程中,應用查詢性能會造成嚴重的影響。Mongodb或限制索引構(gòu)建過程中數(shù)據(jù)的讀寫。另外,索引會帶來額外的存儲開銷,占用服務器的存儲空間。對于大量數(shù)據(jù)寫入和更新的數(shù)據(jù)庫,索引的增加會降低數(shù)據(jù)寫入和更新的速度。
使用場景
系統(tǒng)重復使用一個或多個字段查詢數(shù)據(jù)庫,就可以在這一個或多個字段上添加索引。
默認索引
在Mongodb中添加新的集合時,mongodb為_id字段創(chuàng)建索引,并添加唯一限制,保證數(shù)據(jù)插入時不會出現(xiàn)相同的id. 默認由_id列創(chuàng)建的索引,不可以刪除。
索引名稱
默認索引名稱由索引列和索引列的順序構(gòu)成,使用下劃線進行區(qū)分。