网上搜索了一下,都说一个目录下最好不要存储太多的文本文件,刚才我做了一下小测试
10万个txt文本文件,每个文本约有800左右的汉字。
方法一:10万个文件都存储在一个目录下面
方案二:把10万个文件分别存储在1000个目录上面 ,每个目录存储100个文件然后用php去读取这些数据,测试其性能结果,不分目录的反而比分目录的测试要快的多而且占用内存和cpu要小,为什么大家还要分目录存储呢?

分目录和不分目录10万文件读取速度测试:
第一轮测试: 
多目录:50.279720783234 秒 cpu:21%  内存使用:111220Kb
单目录:29.378010988235 秒 cpu:8%   内存使用:111112Kb第二轮测试: 
多目录:51.964272022247 秒 cpu:20%  内存使用:111224Kb
单目录:31.816708803177 秒 cpu:11%   内存使用:111116Kb第三轮测试: 
多目录:52.020897865295 秒 cpu:19%  内存使用:111220Kb
单目录:29.486724853516 秒 cpu:14%   内存使用:111112Kb

解决方案 »

  1.   

    1.  有些系统的单目录下可以存储的文件个数是有限制的。
    2.  有时分目录是为了逻辑、分层更清晰(典型的如css和js就应该存在不同的目录)
    3.  单目录下文件数过多,还会有其他的性能问题(比如打开文件会很慢,windows等图形界面系统更明显)
      

  2.   

    1.分目录可以方便管理
    2.显示列表时区别很大,例如使用windos图形界面显示目录下文件列表时。
    3.inode问题,每个文件对应一个inodes ,如果iodes没有了,那就算有空间也不能再写文件了。(不过这个是对应分区,并不是对应目录)
      

  3.   

     碰到我这种任性的,我就把全部的图片放在一个文件夹,不担心文件个数限制,因为我用的不是FAT也不是NTFS,当然,也不是EXT4之流。要是你比我还任性,非得在这个目录 ls 一下,哎。我会让你先哭会儿。