我有一個具有這樣結構的用戶檔案
email: string
version: number
username: string
該用戶集合具有以下索引
collection.createIndex({email: 1}, {unique: true})
collection.createIndex({email: 1, version: 1})
第一個索引確保電子郵件是唯一的,第二個索引允許在執行這樣的查詢時更有效地查找和更新
collection.updateOne({email: "...", version: 2}, data)
我擔心的是——每次更新用戶檔案時,它的版本都會增加。這是否意味著現在每個電子郵件版本組合都有一個索引?這意味著隨著時間的推移,此類索引將占用大量資源。一旦版本更改(因為它只能遞增),是否可以讓 mongo 洗掉舊的電子郵件版本索引?
uj5u.com熱心網友回復:
索引是在存盤引擎端實作的。Mongo 只是使用它們。對于wiredtiger,它是常規索引的b-tree。任何更改索引欄位的檔案更新都會導致洗掉樹中的前一個節點并插入新節點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/522645.html
標籤:mongodb