1.索引提高查詢速度,降低寫入速度,權衡常用的查詢字段,
不必在太多列上建索引
2.在mongodb中,索引可以按欄位公升序/降序來建立,便於排序
3.預設是用btree來組織索引檔案,也允許簡歷hash索引
檢視查詢計畫
db.[collection].find(query).explain();
"cursor" : "basiccursor", ----說明沒有索引發揮作用
"nscannedobjects" : 1000 ---理論上要掃瞄多少行
cursor" : "btreecursor sn_1", 用到的btree索引
常用命令:
檢視當前索引狀態:
db.[collection]
.getindexes();
建立普通的單列索引:
db.[collection].ensureindex()://
1是公升序,-1是降序
刪除單個索引:
db.[collection]
.dropindex();
一下子刪除所有索引:
db.[collection].dropindexes();
建立多列索引:
db.[collection]
.ensureindex();
建立子文件索引:
db.[collection]
.ensureindex();
建立唯一索引:
db.[collection]
.ensureindex(,);
建立稀疏索引:
稀疏索引的特點:如果針對field做索引,針對不含field列的文件,
將不建立索引,與之相對,普通索引,會把該文件的field列的值任務null,
並建立索引,
適用於:小部分文件含有某列時
db.[collection]
.ensureindex(,);
例
db.tea.find();
如上內容,最後一行沒有email列
如果分別加普通索引,和稀疏索引
對於最後一行的email 分別當做null和忽略最後一行來處理
根據來查詢,前者能查到,而稀疏索引查不到最後一行
建立雜湊索引
雜湊索引速度比普通索引快,但是,不能對範圍查詢進行優化
適用於–隨機性強的雜湊
db.[collection]
.ensureindex();
重建索引
乙個表經過很多次修改後,導致表的檔案產生空洞,索引檔案也是如此
可以通過索引的重建,減少索引檔案碎片,並提高索引的效率
類似mysql中的 optimize table
db.[collection]
.reindex();
MongoDB學習筆記 索引
一 索引基礎 mongodb的索引幾乎與傳統的關係型資料庫一模一樣,這其中也包括一些基本的優化技巧。下面是建立索引的命令 db.test.ensureindex 可以通過下面的名稱檢視索引是否已經成功建立 db.test.getindexes 刪除索引的命令是 db.test.dropindex 在...
MongoDB學習筆記 索引
一 索引基礎 mongodb的索引幾乎與傳統的關係型資料庫一模一樣,這其中也包括一些基本的優化技巧。下面是建立索引的命令 db.test.ensureindex 可以通過下面的名稱檢視索引是否已經成功建立 db.test.getindexes 刪除索引的命令是 db.test.dropindex 在...
MongoDB學習筆記 索引
一 索引基礎 mongodb的索引幾乎與傳統的關係型資料庫一模一樣,這其中也包括一些基本的優化技巧。下面是建立索引的命令 db.test.ensureindex 可以通過下面的名稱檢視索引是否已經成功建立 db.test.getindexes 刪除索引的命令是 db.test.dropindex 在...