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

Filesystems 在目录中搜索文件的效率?,filesystems,web-development-server,Filesystems,Web Development Server,我正在建立一个带有用户身份验证系统的网站,允许每个用户将图像上传到他们的帐户,基本上我这样做是作为一个网站开发的经验,所以请原谅我对这个主题的无知 我的问题涉及将文件放入目录的效率。创建更深层次的目录结构或将所有文件放在一个文件夹中更有效吗?前者似乎很明显,但它不依赖于文件系统实现的搜索算法吗 例如: root/user/2012/----------------A/ /2013/---------- A/ B/ /2014/------A/ B/

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

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

例如:

root/user/2012/----------------A/
         /2013/---------- A/   B/
         /2014/------A/   B/   C/
                     B/   C/   D/
                     C/   D/
                     D/
还是将所有文件转储到单个文件夹中

root/user/

例如,通过
标记检索图像时,哪种方式可以提供更有效的结果?我在谷歌上搜索了关于这个话题的信息,但找不到任何明确的信息,也找不到与我理解水平相符的信息

我不知道您打算在什么操作系统上运行,但我会采用多目录方法,因为一些FSs(例如windows上的NTFS)在处理单个目录中的10000多个文件时速度会非常慢

我不知道您打算在什么操作系统上运行,但我会采用多目录方法,就像一些FSs一样(例如,windows上的NTFS)当处理单个目录中的10000多个文件时,速度会大大减慢

访问单个文件应该大致相当。单个目录或多项选择实际上取决于您如何使用文件列表。如果您希望用户拥有数千个文件,而您一次只显示一年,这可能是有意义的将目录结构拆分为多个部分以保持文件列表的可管理性。如果您总是显示所有文件,我怀疑单个文件夹可能会更快,因为您将必须运行整个目录列表以执行多个文件列表。我将根据您希望应用程序处理的内容进行一些测试。My guess应该是一个单一的目录,除非您希望有大量的文件,并且您可以分解列表。

访问单个文件应该大致相同。单个目录或多选实际上取决于您如何尝试使用文件列表。如果您希望用户有数千个文件,而您只需要如果一次只显示一年,将目录结构拆分为多个部分以保持文件列表的可管理性可能是有意义的。如果总是显示所有文件,我怀疑单个文件夹可能会更快,因为您必须运行整个目录列表来执行多个文件列表。我将根据你希望你的应用程序必须处理的内容。我猜只有一个目录就可以了,除非你需要大量的文件,你可以将列表分解。

嗯,呃,NTFS可以处理超过一百万个文件/目录(我已经测试过了)。各种工具(如POWERSHELL、CMD、Explorer)这方面做得很糟糕,因为他们喜欢枚举所有内容,然后进行操作。我在winXP上遇到过10K多一点的问题。也许他们改进了一些东西,我不知道。呃,呃,NTFS可以处理超过1M个文件/目录(我已经测试过了)。各种工具(如POWERSHELL、CMD、Explorer)这方面做得很糟糕,因为他们喜欢枚举所有内容,然后进行操作。我在winXP上遇到过10K多一点的问题。也许他们从那以后有所改进,我不知道。