![为了提高性能,1 个文件夹中最多可以放入多少个文件?](https://linux22.com/image/1211578/%E4%B8%BA%E4%BA%86%E6%8F%90%E9%AB%98%E6%80%A7%E8%83%BD%EF%BC%8C1%20%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E6%9C%80%E5%A4%9A%E5%8F%AF%E4%BB%A5%E6%94%BE%E5%85%A5%E5%A4%9A%E5%B0%91%E4%B8%AA%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我以前读过,限制每个文件夹中的文件数量是一种很好的做法/性能,在这种情况下是用户上传的照片,
到目前为止,我的网站已有大约 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 文件时冻结。:)