2013-08-19 31 views
0

在GridFS FAQ中,有人說應該存儲前面提到的大小大於16MB的GridFS文件。我有很多文件〜500KB。使用MongoDB來存儲大小爲est的文件500KB

問題是:哪種方法更高效 - 將文件的內容存儲在文檔中或將文件存儲在GridFS中?我應該考慮其他方法嗎?

+0

什麼是文件的最大大小?根據GridFS文檔,它將文件分割成塊,然後將這些塊存儲在一個集合中,並將元數據存儲在另一個集合中。如果你的文件都在16MB的限制範圍內,那麼我預計存儲/檢索將更快,更節省空間。 –

+0

我在上面提到的文檔可以在以下網址找到:http://docs.mongodb.org/manual/core/gridfs/ –

+0

正如我在OP中所提到的,大部分是〜500KB。估計*最大*大小不超過1MB。 「存儲/檢索」是什麼意思?將文件內容讀入文件並形成新文件比?我懷疑文件被檢索〜每小時10000次。它是否有效 - 每次創建一個新文件? – tkroman

回答

5

至於效率,兩種方法都是一樣的。通過在多個文檔中分頁> 16MB數據,GridFS在驅動程序級別實現。 MongoDB並不知道你正在存儲一個「文件」,它只知道如何存儲文件,而不會提出問題。因此,根據您的驅動程序(PHP/NodeJS/Ruby),您可能會發現一些元數據功能很好,因此可以選擇使用GridFS。否則,如果您確定文檔不會超過16MB,那麼將原始內容存儲在文檔中應該相當簡單,並且速度更快(或更快)。

通常,我建議不要在數據庫中存儲文件。它可能會對您的工作集和整體速度產生負面影響。