mongodb建立索引和刪除索引和背景索引background

oktokeep發表於2024-05-01

mongodb建立索引和刪除索引和背景索引background

MongoDB的背景索引允許在後臺建立和重建索引,而不會對資料庫的正常操作產生影響。背景索引的建立過程是非阻塞的,可以在業務執行時建立或重建索引,而不會中斷其他操作。這使得我們可以在生產環境中安全地建立和維護索引,而不必擔心對資料庫效能造成負面影響。

注意:
## collection 代表的是表名稱,比如:my_url
db.collection.createIndex({ code:1 }, { background: true })
##建立索引
db.getCollection('my_url').createIndex({ code:1 }, { background: true })
##建立索引(簡寫)
db.my_url.createIndex({code:1},{background:true})
##刪除索引
db.my_url.dropIndex({code:1},{background:true})


db.collection.createIndex({ field: 1 }, { background: true })
在上述示例中,我們透過createIndex方法建立了一個名為field的索引,並指定了background:true選項。這將會在後臺非同步地建立索引,而不會阻塞其他操作。在索引建立過程中,我們可以繼續對資料庫進行正常的增刪改查操作,而不會受到索引建立的影響。

在MongoDB中,加索引是為了提高查詢效能。你可以使用createIndex()函式來為一個或多個欄位新增索引。
單欄位索引:
/ 對集合中的 'fieldname' 欄位新增升序索引
db.collection.createIndex({ fieldname: 1 });

// 對集合中的 'fieldname' 欄位新增降序索引
db.collection.createIndex({ fieldname: -1 });

複合索引:
// 對集合中的 'fieldname1' 和 'fieldname2' 欄位新增複合索引
db.collection.createIndex({ fieldname1: 1, fieldname2: -1 });

唯一索引:
// 對集合中的 'fieldname' 欄位新增唯一索引
db.collection.createIndex({ fieldname: 1 }, { unique: true });

使用TTL(Time-To-Live)索引:
// 在集合中對 'fieldname' 欄位新增索引,資料在儲存時間超過3600秒後自動刪除
db.collection.createIndex({ "fieldname": 1 }, { expireAfterSeconds: 3600 });

背景索引
db.collection.createIndex({ field: 1 }, { background: true })

請確保在實際應用中,索引策略需要根據你的資料模式和查詢模式來制定。不必要的索引可能會降低寫操作效能,因此在建立索引時需要權衡利弊。

相關文章