当前位置 : 主页 > 网络推广 > seo >

我应该使用GridFS或二进制数据来存储和检索MongoDB中的图像吗?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我想知道哪个是更好/更快: 单独收集仅包含保存为二进制数据的图像的文档,以及可能的一些元数据. 或使用GridFS来存储图像. 如果您的图像很小,您可以将它们作为二进制数据存储在您
我想知道哪个是更好/更快:

>单独收集仅包含保存为二进制数据的图像的文档,以及可能的一些元数据.
>或使用GridFS来存储图像.

如果您的图像很小,您可以将它们作为二进制数据存储在您的集合中的文档中.只要您每次查询文档时都会检索它们(除非您从查询中排除“图像”字段).

但是,如果您的图像较大,我将使用GridFS. GridFS具有一些功能,可以很好地处理您应该考虑的图像:

>对于较大的图像,当它们存储在GridF中时,它们将被分割成块,您可以存储非常大的文件.如果您尝试在文档中存储图像,则受到文档最大尺寸16Mb的约束,并且您正在占用需要用于实际文档的空间.
>您可以向图像本身添加元数据,并针对这些属性运行查询,就像从集合中的常规文档执行查询一样.因此,GridFS与图像元数据的文档一样好.
>我真的很喜欢我在图像上计算出MD5哈希值. (这对我的一些情况非常有用).
>通过在GridFS中存储图像,您可以自己将图像的预处理保存为二进制格式(不是一件大事,而是GridFS的一个方便)

在性能方面,对正常文档的阅读/写作应该与对GridFS进行对比.我不会考虑表现作为选择任何一个的区别.

我个人的建议是使用GridFS,但是您需要根据您的具体用例进行分析.

希望这可以帮助.

网友评论