使用 MongoDB 默认使用 GridFS 是否有缺点?
Are there cons to using GridFS as a default with MongoDB?
我正在用 node、express 和 mongodb 创建一个 RESTful API,我用作参考的书建议使用 GridFS(即 gridfs-stream)对于需要处理大于 MongoDB 截止值 (16MB)
的文件的情况
我不确定我的应用程序是否需要处理这么大的文件,但我想知道无论如何使用它是否有缺点,以防我以后可能需要该功能。
是否有任何我应该注意的缺点(即重大的不必要的性能损失、稳定性问题)以帮助做出此决定?
我也愿意听取您可能拥有的替代文件管理解决方案的建议。
谢谢!
不要将 Gridfs 用于小型二进制数据
GridFS 需要两个查询:一个用于获取文件的元数据,一个用于获取其内容
因此,如果你使用 GridFS 来存储小文件,你就是在将数量加倍
您的应用程序必须执行的查询。 GridFS 基本上是一种分解大型
用于存储在数据库中的二进制对象。
GridFS 用于存储大数据——大于单个文档所能容纳的数据。作为最佳实践的规则,任何太大而无法一次加载到客户端的东西可能都不是
你想在服务器上一次加载所有内容。因此,无论你想做什么
流到客户端是 GridFS 的一个很好的候选者。一次性加载的东西
在客户端上,例如图像、声音,甚至是小视频剪辑,通常应该只是
嵌入到您的主文档中
此外,如果您的文件都小于 16 MB BSON 文档大小限制,请考虑将文件手动存储在单个文档中,而不是使用 GridFS。您可以使用 BinData 数据类型来存储二进制数据。有关使用 BinData 的详细信息,请参阅您的驱动程序文档。
见https://docs.mongodb.com/manual/core/gridfs/
如果有帮助,请标记正确
我正在用 node、express 和 mongodb 创建一个 RESTful API,我用作参考的书建议使用 GridFS(即 gridfs-stream)对于需要处理大于 MongoDB 截止值 (16MB)
的文件的情况我不确定我的应用程序是否需要处理这么大的文件,但我想知道无论如何使用它是否有缺点,以防我以后可能需要该功能。
是否有任何我应该注意的缺点(即重大的不必要的性能损失、稳定性问题)以帮助做出此决定?
我也愿意听取您可能拥有的替代文件管理解决方案的建议。
谢谢!
不要将 Gridfs 用于小型二进制数据 GridFS 需要两个查询:一个用于获取文件的元数据,一个用于获取其内容 因此,如果你使用 GridFS 来存储小文件,你就是在将数量加倍 您的应用程序必须执行的查询。 GridFS 基本上是一种分解大型 用于存储在数据库中的二进制对象。 GridFS 用于存储大数据——大于单个文档所能容纳的数据。作为最佳实践的规则,任何太大而无法一次加载到客户端的东西可能都不是 你想在服务器上一次加载所有内容。因此,无论你想做什么 流到客户端是 GridFS 的一个很好的候选者。一次性加载的东西 在客户端上,例如图像、声音,甚至是小视频剪辑,通常应该只是 嵌入到您的主文档中
此外,如果您的文件都小于 16 MB BSON 文档大小限制,请考虑将文件手动存储在单个文档中,而不是使用 GridFS。您可以使用 BinData 数据类型来存储二进制数据。有关使用 BinData 的详细信息,请参阅您的驱动程序文档。
见https://docs.mongodb.com/manual/core/gridfs/
如果有帮助,请标记正确