在目录中搜索文件的效率?

时间:2013-01-06 18:52:35

标签: filesystems web-development-server

我正在建立一个带有用户身份验证系统的网站,允许每个用户将图像上传到他们的帐户,基本上我这样做是为了体验网络开发,所以请原谅我对这个主题的无知。

我的问题涉及将文件放入目录的效率。创建更深层的目录结构或将所有文件放入一个文件夹是否更有效?前者似乎很明显,但它不依赖于文件系统实现的搜索算法吗?

例如:

root/user/2012/----------------A/
         /2013/---------- A/   B/
         /2014/------A/   B/   C/
                     B/   C/   D/
                     C/   D/
                     D/

或者将所有文件转储到一个文件夹中?

root/user/

检索图像时,例如<img>标记,哪种方式可以提供更有效的结果?我在谷歌搜索了有关该主题的信息,但找不到任何确定的或我的理解水平。

2 个答案:

答案 0 :(得分:2)

访问单个文件应大致相同。单个目录或多个选择实际上取决于您尝试使用文件列表的方式。如果您希望用户拥有数千个文件并且您一次只显示一年,那么将目录结构分解为多个部分以保持文件列表可管理可能是有意义的。如果你总是显示所有文件,我怀疑单个文件夹可能更快,因为你必须在整个目录列表中运行多个文件列表。我会根据您对应用程序必须处理的内容进行一些测试。我的猜测是单个目录应该没问题,除非你期望大量的文件,你可以打破列表。

答案 1 :(得分:1)

我不知道你打算运行什么操作系统,但我会选择多目录方法,因为一些FS(例如Windows上的NTFS)在单个目录中处理10000多个文件时可怕地放慢速度