我是否应该担心 *NIX 文件系统中文件夹中的最大文件数量?

我是否应该担心 *NIX 文件系统中文件夹中的最大文件数量?

在社交网络项目中,我们想将用户的头像存储在一个文件夹中。我认为一两年后它将达到 140K(我以前见过这个问题,大约是这个数字)。我想将文件分散到文件夹中。如果一个文件夹包含 1000 个文件,则创建另一个文件夹并存储从 1001 到 2000 个文件。这是一种好方法还是我只是对这个问题非常谨慎?(文件系统:EXT3

答案1

随着时间的推移,即使 ext3 增加了目录索引和其他功能,对于包含大量文件的目录来说,它也不是一个理想的选择。如果目录除了频繁的读取活动外还有大量的写入活动,或者目录中的文件通过 NFS/Samba 提供服务,情况尤其如此。

一般来说,以某种方式对子目录中的文件进行哈希处理会更好,例如

a/apple.png
b/banana.png
c/cow.png

或者

a/ap/apple.png
b/ba/banana.png
c/co/cow.png

您提出的建议(在一个目录中的一定数量的文件之后创建另一个目录)也很好。

答案2

目录索引Linux 2.6 中的功能。它提到了包含超过 1600 万个文件的目录。应该足够一段时间了。

相关内容