网上搜索了一下,都说一个目录下最好不要存储太多的文本文件,刚才我做了一下小测试
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
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
2. 有时分目录是为了逻辑、分层更清晰(典型的如css和js就应该存在不同的目录)
3. 单目录下文件数过多,还会有其他的性能问题(比如打开文件会很慢,windows等图形界面系统更明显)
2.显示列表时区别很大,例如使用windos图形界面显示目录下文件列表时。
3.inode问题,每个文件对应一个inodes ,如果iodes没有了,那就算有空间也不能再写文件了。(不过这个是对应分区,并不是对应目录)