为了提高性能,1 个文件夹中最多可以放入多少个文件?

为了提高性能,1 个文件夹中最多可以放入多少个文件?

我以前读过,限制每个文件夹中的文件数量是一种很好的做法/性能,在这种情况下是用户上传的照片,

到目前为止,我的网站已有大约 1,000,000 张用户照片,并且每天都在增加,因此,我将保存照片的文件夹结构设置为 9/8/5 之类的结构,这样每个文件夹将放入 X 数量的照片,然后开始放入新文件夹。

我知道这不是一个巨大的性能问题,但我相信太多的文件确实会影响搜索时间

我想知道将文件夹中的文件数量限制为多少比较合适?

答案1

如同这个问题

答案2

我个人不会太担心这个,但我个人会将文件系统更改为以日期格式存储。

例如2009/08/06。

通过保持井然有序,这至少可以减少您的每日金额,但您的年度金额不会改变。

我从未真正关心过文件夹中放了多少东西,我只是让东西井井有条。

答案3

在 ext3 文件系统中,你可以目录中大约有 32000 个子目录

对于 ext2 和 ext3,硬限制为 31998,因为 EXT[23]_LINK_MAX 为 32000,并且每个子目录(文件夹)都有一个链接回其父目录,其父目录的初始链接数为 2。

良好表现的限制可能会少很多。

此外,构建数据以避免达到此类限制还有其他好处,例如,可以更轻松地将大型数据存储拆分到多个卷甚至服务器中。

答案4

我通常会将文件拆分成每个文件夹 10000 个文件。如果您的文件有某种数字标识符,那么拆分起来就相当容易了。

例如,如果您使用标识符为 9876543 的文件,则可以使用以下流程:

  • 12 位数字格式(000009876543)
  • 使用前八位数字作为文件夹标识符 (0000/0987)
  • 将文件另存为(0000/0987/myfile.jpg)

虽然大多数文件系统允许您在单个文件夹中保存更多文件,但这可以使事情变得更有条理,如果您最终需要分成多个卷,它会更容易,如果您使用 Windows,它还可以确保 Explorer 不会在尝试读取 1M 文件时冻结。:)

相关内容