讀古今文學網 > MongoDB實戰 > 1.5 提示與局限 >

1.5 提示與局限

有了這些優良的特性,你還需要牢記系統捨棄的特性與局限。在使用MonogDB構建真實的應用程序並用於生產環境之前,應該注意一些局限,它們大多數都是由於MongoDB使用內存映射文件(memory-mapped file)而導致的。

首先,MongoDB通常應該運行於64位的機器上。32位系統只能對4 GB內存做尋址。要知道,一般半數的內存都會被操作系統和程序進程佔用,就只剩2 GB內存能用來映射數據文件。因此,如果運行在32位的服務器上,還定義了適當數量的索引,那麼數據文件只能被限制在1.5 GB。大多數生產環境系統的要求都高很多,因此一個64位的系統是必需的。1

1. 理論上來說,64位的架構可以尋址16艾字節(exabyte)內存,無論想做什麼都不會再受到限制。

使用虛擬內存映射的第二個後果是,數據佔用的內存會自動按需分配。這樣一來,想在共享環境中運行數據庫會變得更加麻煩。要把MongoDB用於數據庫服務器,最好是能讓它運行在一台專門的服務器上。

最後,運行帶複製功能的MongoDB是十分重要的,尤其是沒有開啟Journaling日誌的時候。因為MongoDB使用了內存映射文件,不開啟Journaling日誌的話,mongod發生任何意外關閉都會導致數據損壞。因此,這時最好能有一個備份以做故障轉移。對任何數據庫而言這都是個不錯的建議(重要的MySQL部署不做複製是很輕率的舉動),這對沒有Journaling日誌的MongoDB尤為重要。