目录与文件,用于高效搜索和检索文件

目录与文件,用于高效搜索和检索文件

我正在开发一个网站,用户可以在服务器上存储各种媒体,并且可以有任意数量的用户。

我想我应该像这样存储用户上传的所有媒体:

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

还有另一种存储方式:

MediaRootDIR/文件.xyz

我不担心组织,因为无论如何我有存储在数据库中的文件路径。

我的问题:

哪种方法更快?(搜索、检索和写入文件系统 - 目前使用 EXT4 文件系统)。

由于目录树中每一级需要加载的文件数量较少,因此使用子目录是否会加快检索速度?

建议使用子目录吗?因为我听说 EXT4 中文件夹可以拥有的子文件夹数量限制在 64,000 个左右

有没有更好的替代方案来存储此类媒体?

提前致谢

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

答案1

EXT4(甚至是最近带有dirindex挂载选项的 EXT3)和 XFS 在每个目录中存储数百万个文件都没有问题。但是,我强烈建议您使用第一种方法(使用UserRootDir中间目录),因为它更易于管理。例如,考虑在ls包含 100 万个文件和 10,000 个文件的目录中发出一个简单的命令:前者将比后者检索多 100 倍的数据。

相关内容