页面上显示的大量文件的最佳目录结构

时间:2015-06-08 23:46:12

标签: linux file optimization directory structure

我目前只有一个目录调用"文件"其中包含来自约100,000名成员的200,000张照片。当成员数量增加到数百万时,我会期望"文件中的文件数量为#34;目录变得非常大。文件的名称都是随机的,因为用户命名它们。我能做的唯一方法是按创建这些文件的用户名对它们进行排序。实质上,每个用户都有自己的子目录。

我运行的服务器在Linux上,带有ext3文件系统。我想知道我是否将文件拆分为"文件中的子目录"目录?将文件拆分成许多子目录有什么好处吗?我看到一些争论并不重要。

如果我确实需要拆分,我正在考虑根据用户ID的前两个字符创建目录,然后创建一个具有用户ID的第三级子目录,如下所示:

files/0/0/00024userid/  (so all user ids started with 00 will go in files/0/0/...)
files/0/1/01auser/
files/0/2/0242myuserid/
.
files/0/a/0auser/
files/0/b/0bsomeuser/
files/0/c/0comeuser/
.
files/0/z/0zero/
files/1/0/10293832/
files/1/1/11029user/
.
files/9/z/9zl34/
files/a/0/a023user2/
..
files/z/z/zztopuser/

我将一次显示50张照片。服务器获取静态显示文件的最有效(快速)方式是什么?所有来自同一目录或50个不同的子目录?任何意见或想法表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

根据文件系统的不同,目录可以容纳的文件数可能有上限。这个,以及在一个目录中存储多个文件的性能影响也在another question中进行了详细讨论。

另外请记住,您的文件名可能不是真正随机的 - 很多可能从“DSC”,“IMG”等开始。同样,不同的用户(或者实际上是同一个用户)可能会尝试存储两个具有相同名称的图像,无论如何都需要从文件名中抽象出来。