【MongoDB】MongoDB之七大實現技巧

來源:互聯網
上載者:User

標籤:mongodb   實現技巧   

技巧一、使用正確的類型用正確的類型存放資料大有裨益。資料類型影響資料的查詢方式、資料存放順序和以及佔用多少空間。 
數字:做為數字使用的欄位就用數字儲存。也就是做計算或按照大小排序的欄位資料庫會自動轉換溢出的(比如由於$inc操作導致的溢出) 32位浮點數,將其變為64位整數。 
日期:一班的用yyy-mm-dd形式的字串就可以,如果date類型就會總會匹配到毫秒層級
objectId就要作為objectId儲存,千萬不要存成字串。這點非常重要,原因是方便查詢 二是objectd中含有用的資訊,絕大多數驅動都是從有方法中獲得文檔的建立日期。 第三objectId表示要多佔兩陪的磁碟空間。 技巧二、用簡單唯一的id替代_id要是資料庫沒用唯一的欄位,那麼就用預設的objetId來做_id。但是若是資料本身就有唯一的欄位,並且不需要objectId的功能,那麼就用自己唯一的之覆蓋預設的id就好了。技巧三、不要用文檔做_id除了不可避免的情況(mapreduce的輸出),通常都不應該將文檔作為_id。問題在於索引一個文檔中的欄位和索引文檔完全不一樣。如果沒有每次查詢每個子文檔的計劃,最後會有多個索引。技巧四、不要用資料庫引用資料庫引用一般形式是:{$id:主鍵,$ref:collectionName}(也可以有可選的$db欄位,表示資料庫)。若被引用的文檔集合是確定的,不妨只用_id引用,這樣就同時比用Id和集合名要節省空間的。 如果知道要引用的集合,資料庫引用就顯得浪費空間。
技巧五、不要用GridFS處理小的位元據GridFS需要查詢兩次,一次擷取檔案的元資訊,另一次擷取內容,所以如果用GridFS儲存小檔案,會使應用查詢次數加倍。從根本上說,GridFS是用來將大的二進位對象切成小片存在資料庫中。技巧六、處理“無縫”故障切換假設發送給伺服器一個請求,得到了網路錯誤,這時驅動有很多選擇。若驅動知道有另一台伺服器是否自動對其發送請求?要是驅動發送原請求後發生網路故障,或者在服務端響應時候發送故障怎麼辦?資料庫可能已經處理了請求,就不必再次發送。技巧七、處理複製組失效以及故障恢複 可能出現的情況:應用拋出異常“not master”異常可能原因:1 . 複製組進行中故障恢複 2, 網路狀況不好,無法連結誒主節點。3.應用連結節點有問題,無法降級為唯讀節點。





【MongoDB】MongoDB之七大實現技巧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.