9

我想知道将所有上传的文件存储在 GridFS 中是否比将它们存储在通常的文件系统上更快,例如 Ext4(在读/写速度和平均服务器负载方面)。

4

2 回答 2

11

一般来说,通常的文件系统访问方式比较慢。但它可以从不错的 MongoDB 功能中受益:

  • 您可以将任何元数据与文件相关联并以通常的方式对其进行查询。实际上,文件作为常规 Mongo 文档存储在fs.filesfs.chunks集合中。
  • 复制。使用副本集,您将获得(几乎)即时备份、故障转移和读取可扩展性(读取请求可以发送到从节点)。
  • 分片。像任何其他集合一样,可以通过自动分片将文件分布在多个 Mongo 实例中。这将提高写入可扩展性。
于 2010-12-31T12:32:27.290 回答
2

何时使用 GridFS

  • 如果您的文件系统限制了目录中的文件数量,您可以使用 GridFS 存储所需数量的文件。
  • 当您希望在多个系统和设施中自动同步和部署文件和元数据时。当使用地理分布的副本集时,MongoDB 可以自动将文件及其元数据分发到多个 mongod 实例并提供便利。
  • 当您想从大文件的一部分中访问信息而不必将整个文件加载到内存中时,您可以使用 GridFS 来调用文件的部分而不将整个文件读入内存。
于 2013-02-10T07:31:42.403 回答