2015-06-08 18 views
1

我目前有一个目录调用“文件”,其中包含约100,000个成员的200,000张照片。当成员数量增加到数百万时,我希望“文件”目录中的文件数量变得非常大。这些文件的名称都是随机的,因为用户命名它们。我能做的唯一方法是按创建这些文件的用户名对它们进行排序。实质上,每个用户都有自己的子目录。大量文件在页面上显示的最佳目录结构

我正在运行的服务器是在带有ext3文件系统的Linux上。我想知道如果我将文件分割成“文件”目录内的子目录?将文件分割成多个子目录有什么好处吗?我看到了一些争论,无所谓。

如果我需要拆分,我想对用户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个不同的子目录?任何意见或想法表示赞赏。谢谢。

回答

0

根据文件系统,目录可容纳的文件数可能有上限。这和在一个目录中存储许多文件的性能影响也在another question中讨论了一些长度。

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

+0

我有的文件系统是ext3。在另一篇文章中选择的答案仅列出了每个系统可以容纳的文件数量。这部分解决了问题。但是,用户将从目录上传/删除照片。如果发生冲突,系统会自动重命名。照片将在网站上显示。我将在一页上显示50张照片。我的上述计划是否会在显示来自同一个或50个不同目录的照片方面给出更好的结果? – Jack

相关问题