我需要存储大量图像(每天大约 10,000 张图像),每张图像的平均大小约为 1 到 10 MB。
我可以使用 GridFS 库将这些图像存储在 MongoDB 中,或者仅将 Base64 转换存储为字符串。
我的问题是,MongoDB 适合这样的有效负载还是使用文件系统更好?
非常感谢,
我需要存储大量图像(每天大约 10,000 张图像),每张图像的平均大小约为 1 到 10 MB。
我可以使用 GridFS 库将这些图像存储在 MongoDB 中,或者仅将 Base64 转换存储为字符串。
我的问题是,MongoDB 适合这样的有效负载还是使用文件系统更好?
非常感谢,
MongoDB GridFS 与普通文件系统相比有很多优势,它绝对能够处理您所描述的数据量,因为您可以使用分片 mongo 集群进行横向扩展。我自己并没有在其中保存那么多二进制数据,但我认为二进制数据和文本之间没有真正的区别。所以:是的,它适用于有效载荷。
使用 GridFS 可以更轻松地对正在保存的文件对象执行查询和操作。此外,GridFS 还满足备份/复制/扩展的需求。但是,使用 Filesystem + Nginx 提供文件比使用 GridFS + Nginx 更快(看这里:https://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/)。然而,当使用分片时,可以利用 GridFS“较慢”的服务速度