1

我的Node.js应用程序当前将上传的图像存储到文件系统,并将路径保存到MongoDB数据库中。每个文档,将来可能最多 2000 个,每个文档有 4 到 10 个图像。我不相信我需要将图像直接存储在数据库中供我使用(我不需要跟踪版本等),我只关心性能。

目前,我将所有图像存储在一个文件夹中,并将相关路径存储在数据库中。但是,随着文档数量(因此图像数量)的增加,在单个文件夹中有这么多文件会降低性能吗?

或者,我可以为每个文档创建一个文件夹。这种额外级别的文件夹复杂性会影响性能吗?同样使用 MongoDB,显而易见的文件夹命名模式是使用 ObjectID,但长度 (24) 的文件夹名称会影响性能吗?我应该使用自定义 ObjectID 吗?

有没有更有效的方法?提前致谢。

4

1 回答 1

3

对于简单地访问文件,目录中的项目数并不会真正影响性能。但是,通常为此拆分目录,因为当您拥有数千个文件时,获取目录索引肯定会很慢。此外,文件系统对每个目录的文件数量有限制。(该限制取决于您的文件系统。)

如果我是你,我会为每个文档创建一个单独的目录,然后在其中加载图像。如果您将拥有超过 10,000 个文档,您可能会将它们拆分一下。假设你的哈希是7813258ef8c6b632dde8cc80f6bda62f. 有一个像/7/8/1/3/2/5/7813258ef8c6b632dde8cc80f6bda62f.

于 2013-08-04T21:52:22.163 回答