溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

寫給MongoDB開發(fā)者的50條建議Tip15

發(fā)布時間:2020-06-07 17:59:57 來源:網絡 閱讀:2283 作者:virusswb 欄目:MongoDB數(shù)據庫

本系列文章翻譯自《50 Tips and Tricks for MongoDB Developers》,暫時沒有找到中文版,反正自己最近也在深入學習mongodb,所以正好拿來翻譯一下。一方面加強自己學習的效果,另一方面讓大 家也一起來體驗一下需要我們這些mongodb使用者需要注意的地方。

首先聲明自己的英文水平不是太高,加之有些英文翻譯成中文也找不到合適的詞來表達,所以在文章中可能會出現(xiàn)英文原詞,或者說有些地方的翻譯會有些生 硬,也就是說會出現(xiàn)直譯的地方。翻譯該書的主要目的是為大家學習探討用的,如果有翻譯不精準的地方,或者說有更加精準的翻譯,還請大家指出,我會及時的更 正的,在此先謝過各位了。

Tip#15.Override _id when you have your own simple,unique id

當你的數(shù)據有簡單的,唯一的主鍵的時候,可以覆寫內部的_id

如果你的數(shù)據沒有自定義的主鍵,那么就使用默認的ObejctId吧??墒?,如果你的數(shù)據有自己的主鍵,那么就不需要ObjectId,就可以使用你自定義的主鍵覆寫內部的ObjectId。這可以節(jié)約及bit的空間,如果給你的主鍵做索引的時候會特別有用,因為可以節(jié)約索引空間和資源(在保存數(shù)據的時候比較重要)。

有兩個不適用你自己的主鍵的原因需要你考慮:

1.你必須確認你的主鍵是唯一的,而且包含了對于重復主鍵的處理機制。

2.你必須記住索引的樹形結構,如何隨即和非隨機的插入數(shù)據。

就索引樹而言,ObjectId在插入順序方面表現(xiàn)的很優(yōu)秀,它們總是自增的,意味著數(shù)據總是被放在B樹的右邊葉子。mongodb只需將B樹的右邊保存在內存中就可以了。

相反的,如果_id列是隨機值,意味著_id將會被插入樹的到處都是。就需要把索引頁整個放在內存中,更新很小的一部分,可能會忽視它,直到它再次滑出內存。這么做是比較低效的。

 

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI