請問檔案存在GridFS中和直接存在Document中相比各有什麼優缺點


  • 註冊用戶

    請問檔案存在GridFS中和直接存在Document中相比各有什麼優缺點

  • 註冊用戶

    GridFS是基於mongodb存儲引擎是實現的“分佈式文件系統”,底層基於mongodb存儲機制,和其他本地文件系統相比,它具備大數據存儲的多個優點。 GridFS適合存儲超過16MB的大型文件,不過16M數據在當今互聯網時代,已經不足為奇。我們可以使用GridFS構建大規模的“圖片服務器”、“文檔服務器”、“視頻、音頻”文件服務器,GridFS對於web應用,可以結合nginx插件“ningx-gridfs”能夠簡單的實現負載均衡等特性,非常便捷;可以簡單認為GridFS是為web應用而生。個人認為,目前架構比較簡單的NoSQL文件系統中GridFS是最優秀的。

    GridFS並不是將單個文件直接存儲為一個document,而是將文件分成多個parts或者說chunks,然後將每個chunk作為作為一個單獨的document存儲,然後將chunks有序保存。默認情況下,GridFS的chunk大小位255k。 GridFS使用2個collections來存儲這些文件,一個collection存儲文件的chunks(實際文件數據),另一個則存儲文件的metadata(用戶自定義的屬性,filename,content-type等)。

    當用戶查詢GridFS中的文件時,客戶端或者driver將會重新按序組裝這些chunks。用戶可以range查詢文件,也可以獲取文件的任意部分的信息,比如:跳過(skip)視頻或者音頻(任何文件)的中間部,實現“range access of single file”。

    對於mongodb而言,每個document最大尺寸為16M,如果想存儲一條數據(比如一個文件)超過16M,那麼只能使用GridFS支持;GridFS可以支持單個文件尺寸達到數G,讀取文件時可以分段讀取。此外,GridFS可以從Mongodb的高性能、高可用特性中獲益,比如我們可以在“replica set”或者“sharding”架構模式下使用GridFS。


  • 註冊用戶

    @rufus 说:

    ,“文檔服務器”,“視頻,音頻”文件服務器,可以結合nginx插件“ GridFS是什麼意思中文翻譯手機版GridFS是什麼意思,怎麼用英語翻譯GridFS,GridFS的英文翻譯,GridF

     高版本的mongodb似乎已經不支援這種這種插件


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待