您好,登錄后才能下訂單哦!
本系列文章翻譯自《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將會被插入樹的到處都是。就需要把索引頁整個放在內存中,更新很小的一部分,可能會忽視它,直到它再次滑出內存。這么做是比較低效的。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。