MongoDB筆記 索引

2021-08-21 09:11:02 字數 1603 閱讀 9133

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 在...