存储在一个文件夹中的文件太多会导致其中一个文件的HTTP请求变慢吗?

时间:2011-08-10 19:10:11

标签: php windows http

我的网站上有近百万张图片,它们存储在我的Windows服务器上的一个文件夹中。

由于直接在桌面上打开此文件夹会让我和我的CPU疯狂,我想知道是否使用我的PHP脚本获取其中一个用于HTTP请求也很费力。
那么,将它们分成不同的文件夹可以提高性能吗?

3 个答案:

答案 0 :(得分:3)

不,性能不依赖于目录中的文件数。在Windows资源管理器中打开文件夹的原因很慢,因为它必须为每个文件呈现图标和各种其他GUI相关的东西。

当Web服务器提取文件时,不需要这样做。它只是(或多或少)直接转到磁盘上文件的位置。

编辑:数百万有点推动文件系统的限制(我假设你的NTFS)。似乎目录中超过10,000个文件的任何内容都会降低您的性能。因此,不仅从性能角度来看,而且从组织角度来看,您可能还需要考虑将它们分成子目录。

答案 1 :(得分:1)

在这种情况下,通常最好的答案是对其进行基准测试。创建一个打开1000个硬编码文件名并关闭它们的程序应该不会太难。在您的百万以上目录和另一个目录中运行测试,该目录仅包含正在测试的1000个文件,并查看是否存在差异。

底层文件系统不仅有所作为,而且通过网络访问也会影响结果。

答案 2 :(得分:0)

将文件分成单独的目录很可能有助于提高性能。但正如马克所暗示的那样,它可能值得进行基准测试