【发布时间】:2011-12-10 00:54:05
【问题描述】:
我想知道哪个更好/更快:
- 拥有单独的文档集合,其中仅包含保存为二进制数据的图像,可能还有一些元数据。
- 或使用 GridFS 存储图像。
【问题讨论】:
我想知道哪个更好/更快:
【问题讨论】:
GridFS 旨在以有效的方式处理文件。 http://www.mongodb.org/display/DOCS/When+to+use+GridFS
不要忘记您可能需要翻译数据 到一个文件并返回。
但可以肯定的是,请根据您的使用模式进行性能测试。
【讨论】:
我使用 GridFS 来存储照片和文档。它非常简单,从集合中检索它以在本地显示或保存很容易。您可以将元数据与二进制数据一起存储在同一个集合中。这样您就无需创建额外的集合来存储它们。
例如,在我的一个项目中,我存储用户个人资料照片以及用户名、文件类型和上传日期。
【讨论】:
如果您的图像很小,您可以将它们作为二进制数据存储在集合中的文档中。只需考虑每次查询文档时都会检索它们(除非您从查询中排除“图像”字段)。
但是,如果您的图像较大,我会使用 GridFS。 GridFS 有一些特性使其非常擅长处理您应该考虑的图像:
在性能方面,对常规文档的读/写应该与对 GridFS 的读/写没有什么不同。我不会认为性能是选择其中任何一个的区别因素。
我个人的建议是使用 GridFS,但您需要针对您的特定用例进行分析。
希望这会有所帮助。
【讨论】: