在使用Nodejs和Mongo的文件系统上的图像存储性能

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

目前,我将所有图像存储在一个文件夹中,并将相关path存储在数据库中。 然而,随着文件的数量,因此影像数量增加,这将有这么多的文件在一个文件夹中的性能下降?

或者我可以为每个文件有一个文件夹。 这种额外的文件夹复杂度是否会影响性能? 另外使用MongoDB,明显的文件夹命名模式将使用ObjectID,但长度(24)的文件夹名称会影响性能? 我应该使用自定义ObjectID吗?

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

为了简单地访问文件,目录中的项目数量并不会真正影响性能。 但是,通常会将目录分割出来,因为如果有数千个文件,目录索引肯定会变慢。 另外,文件系统对每个目录的文件数量也有限制。 (这个限制取决于你的文件系统。)

如果我是你,我只是为每个文件有一个单独的目录,并加载在那里的图像。 如果你将要有超过10,000个文件,你可能会分裂一些。 假设你的散列是7813258ef8c6b632dde8cc80f6bda62f 。 像/7/8/1/3/2/5/7813258ef8c6b632dde8cc80f6bda62f这样的目录结构是很常见的。