目录与文件有效地search和检索文件

我正在一个网站上工作,用户有能力在服务器上存储各种媒体,可以有任意数量的用户。

我想我会存储用户上传的所有媒体,如下所示:

MediaRootDIR / UserRootDIR / file.xyz(UserRootDIR对每个用户都是唯一的)

还有另一种存储方式:

MediaRootDIR / file.xyz

我不担心组织因为我有存储在数据库中的文件的path。

我的问题:

哪种方法更快? (search,检索和写入文件系统 – 从现在起使用EXT4文件系统)。

是否使用子目录加快检索,因为没有。 需要在目录树的每个级别加载文件?

是否build议使用子目录,因为我听说EXT4文件夹可以有一个子文件夹的数量是有限的,大约是64,000

有没有更好的select来存储这样的媒体?

提前致谢

编辑:名称冲突不会是我的问题,因为上传的每个文件都有唯一的名称

EXT4(甚至最近的EXT3与dirindex挂载选项)和XFS没有问题存储每个目录数以百万计的文件。 不过,我强烈build议您使用第一种方法(使用UserRootDir中间目录),因为它更易于pipe理。 例如,考虑在一个有100万对10.000个文件的目录里发一个简单的ls :前者将比后者检索100倍多的数据。