亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

MONGODB GridFS存儲文件與文件系統存儲的區別是怎樣的

發布時間:2021-09-29 11:06:17 來源:億速云 閱讀:167 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關MONGODB  GridFS存儲文件與文件系統存儲的區別是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

數據庫中大部分都不建議存儲較大的文件到數據庫中,而在MONGODB 數據庫中有一種方式可以存儲較大的文件,這種文件的格式叫做GridFS.

這里就產生一個問題,這個GRIDFS 功能到底什么時候才有用

首先Gridfs的文件存儲方式和數據提取方式都與普通的MONGO的信息存儲的方式不同,根據文檔的提示 gridfs 存儲的數據應該是超過16MB的BSON文件。

GridFS并沒有將文件存儲在單個文檔中,而是將文件分成多個部分(即塊[1]),并將每個塊存儲為單獨的文檔。默認情況下,GridFS使用255 kB的默認塊大小;也就是說,GridFS將文件分成255 kB的塊(最后一塊除外)。最后一塊的大小取決于需要。類似地,不大于塊大小的文件只有最后一個塊,只使用所需的空間和一些額外的元數據。

本身MONGODB 的Gridfs是通過兩個文件來進行存儲數據的, 而Gridfs 和文檔存儲最大的區別在于,對于內存的消耗,如果是文檔方式存儲,則數據需要他通過內存來進行輸出,而如果采用gridfs的方式來存儲數據,則文件是通過驅動程序來進行文件的組裝,而不再通過內存的方式來進行數據的提取。

說到這里可能已經有聲音提出異議, 我存儲文件使用文件系統好不好,為什么要用數據庫來存儲,性能怎么樣,你的優勢優勢又在哪里,這估計是比較難于回答的問題之一。

在文件系統中,存儲數據的個數是有限制的,這和文件的系統的設計是有關的,(Windows linux )都有類似的問題,而MONGODB 的方式來存儲文件,這樣的情況就不是一個需要特別考慮的問題。 

這是其一, 而后面的問題是,如果我希望我的文件是同步傳輸的,這樣的問題,估計要操作系統的文件系統來進行處理,就會出現問題。例如我在A 地點寫了一個文件,我希望我能在B 地點來讀取這個文件,或者我希望我的文件有備份,有COPY 有保護。

說到這里,估計提出異議的同學的聲音慢慢會變得安靜下來, 的確上面的問題讓文件系統來做,方案,消耗對比,都不那么容易。

而交給MONGODB 則會變得容易了許多,如果你能保證網絡的穩定性,的確可以進行在北京寫入的文件,在上海同步提取,并且可能廣州想同時獲取也不是問題。這不就是一個異地的文件分發系統,如果能二次開發一下,我想這樣的產品也會有相關的需求。

而另外祭出的一個點就是,數據安全方面的需求,對于文件系統如果對文件進行細致的權限劃分將是很難的一件事情,而對于數據庫則是本身具有的功能,從數據的安全性來看,如果多數據的安全性有較高的要求,完全可以通過MONGODB 的方式來更換傳統的文件存儲的模式。

廢話這么多,可以看看到底怎么操作gridfs ,下面是將一個目錄的文件,塞進mongodb中

MONGODB  GridFS存儲文件與文件系統存儲的區別是怎樣的

文檔中提出,如果需要自動更新整個文件的內容,請不要使用GridFS。作為替代方法,您可以存儲每個文件的多個版本,并在元數據中指定文件的當前版本。您可以在上傳文件的新版本后,在原子更新中更新指示“最新”狀態的元數據字段,然后根據需要刪除以前的版本。

在操作完上面的PYTHON 腳本后,查看下面的image database ,collection 會有兩個

fs.chunks

fs.files

fs.files 是負責存儲文件的非實體信息,可以認為他是一個目錄, 而fs.chunks 則是存儲實體的file的chunks 信息。

所以兩個collection 任何一個受損都不是一件好事情。

為了提高效率,GridFS在每個塊和文件集合上使用索引。為了方便,符合GridFS規范的驅動程序會自動創建這些索引。您還可以根據需要創建任何附加索引,以滿足應用程序的需要。

GridFS使用filename和uploadDate字段對文件集合使用索引

現實中如果不使用python,在外部進行mongodb 的文件操作則可以使用 mongofiles 對MONGNODB 的存儲文件進行簡單的查詢和數據的處理

對于小型的文件,并且有上面提到的需求的情況下,使用MONGODB 是可以來完滿的達到相關的需求的,所以數據庫可以替代存儲,在某些場合是有優勢的。

當然可能還有些同學提出,如果文件是在文件系統中可以打開后直接修改,而使用了gridfs 系統則不可以,而必須下載文件,然后在將修改后的文件上傳,原文件刪除,這樣的做法是不是有點太麻煩了,這里就牽扯另一個問題了,重要點。

1 MONGODB GRIDFS使用它的目的是在文件的分發和權限的控制,以及文件的高可用和復用,多版本文件分發等等功能,這些功能都是文件系統不能給與你的

2 文件系統固然比GRIDFS 要方便,但如果你需要上面的功能,必須妥協。

經常聽到有些質疑聲,站在A 點 說B 點好,而B 點達不到你的要求,魚和熊掌兼得,技術上當然是兼得最好,但要搞清楚主次,那些是你必須的,那些是可以舍棄的,幻想和理想,也僅僅就差一個字。

以上就是MONGODB  GridFS存儲文件與文件系統存儲的區別是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

内丘县| 平和县| 丰原市| 新安县| 左贡县| 离岛区| 江津市| 普陀区| 叶城县| 修武县| 晋江市| 呼图壁县| 沙湾县| 黄龙县| 邹城市| 建德市| 大理市| 康保县| 禹城市| 札达县| 屏边| 抚顺市| 海宁市| 吐鲁番市| 逊克县| 潍坊市| 双城市| 呼和浩特市| 泰来县| 大兴区| 博乐市| 永善县| 双流县| 余姚市| 霍城县| 保亭| 永州市| 武城县| 兴化市| 贡山| 桃江县|