Mongodb 不能儲存大於16M的檔案

2021-09-12 14:07:09 字數 400 閱讀 2434

啊啊啊!踩坑了!

由於切換資料庫的原因,需要從couchdb資料庫中將模型檔案給拉取到mongodb資料庫中,誰知道模型檔案儲存到mongodb中總是少1000來條,**也沒報錯啊,怎麼回事???

原來如此

mongodb 中的"坑",— 單個文件16m大小限制

對遇到過這個問題的人來說,這個16m很好理解, 而對於還未意識到這個問題的人來說,這個』坑』 可能會讓你花時間都難以發現,因為這又要牽扯到mongodb的另乙個儲存機制 ---- 無返回碼,什麼意思呢? 就是mongodb的插入,刪除等操作, 客戶端向資料庫發出請求之後,是不需要等待資料庫返回操作是否成功的返回結果。這也是mongodb插入,更新等操作速度快的原因。

當單個檔案超過16m之後, 程式並不會報錯, 但此時, 資料已經無法插入資料庫了。

MongoDB儲存配置

無論資料還是索引都存放在硬碟中。到要使用的時候才交換到記憶體中。對於讀密集型應用,規劃好伺服器大小以保證在記憶體中能支撐整個工作集並且進行複製以得到更高的可用性。如果你伺服器的記憶體 ram 不能夠保證在記憶體中容納工作集,進行分片以從多個複本集群中整合記憶體 ram 使用與部署相同的伺服器硬體建立...

Mongodb 儲存引擎

mongodb 3.0 的儲存引擎預設是mmapv1,還有乙個新引擎wiredtigger,wiredtigger具有很高的效能。建議在生產環境上公升級到wiredtigger。mongodb原生的儲存引擎,比較簡單,直接使用系統級的記憶體對映檔案機制。對於insert,read,update up...

MongoDB 儲存引擎

儲存引擎是mongodb的核心元件,負責管理資料如何儲存在硬碟和記憶體上。mongodb支援的儲存引擎有mmapv1 wiredtiger和inmemory。inmemory儲存引擎用於將資料只儲存在記憶體中,只將少量的元資料 meta data 和診斷日誌 diagnostic 儲存到硬碟檔案中,...