一个文件夹下放多少文件比较适合呢

2017-06-03 20:25:01 +08:00
 coldwinds
目前有很多小文件,100w 个以上,打算分到多级目录下,那么一个目录存多少文件比较适合不影响效率呢?

有没有相关的参考,google 了下没有具体的答案

有类似经验的 v 友吗
3895 次点击
所在节点    PHP
11 条回复
springmarker
2017-06-03 21:46:58 +08:00
根据文件名的哈希值来行吗
yidinghe
2017-06-03 22:26:42 +08:00
我遇到过单个目录文件超过 65535 个之后无法创建新文件。
Huuluo
2017-06-03 22:44:46 +08:00
目前做法放 1W
alex321
2017-06-03 23:28:56 +08:00
我们的系统上设计每层放 999 个。
coldwinds
2017-06-04 02:22:31 +08:00
@springmarker 因为有连续 ID 所以就按 ID 来分了,就看 ID 怎么分段了
springmarker
2017-06-04 09:00:05 +08:00
哈希是 16 进制,假设文件“你好.txt ”的 md5 是 1F 88 90 7F 50 67 04 A3,按照哈希值分段分配目录,因为是 16 进制,一个目录下最少可以只有 16 个目录。2 个字节算一个目录的话就是一个目录下最多有 256 个目录,目录的深度是 8,当然最后 4 个字节可以不做目录,这样深度就是 6。当然有很多其他分法。
(应该是这样的,哈哈哈)
sagaxu
2017-06-04 10:07:09 +08:00
只是 open+read/write,100 万个即使不分级,也不会影响太大。但是有些 SB 语言的 SB 库,会读整个目录的文件列表,100 万个就悲剧了,1000 个比较合理。
coldwinds
2017-06-04 11:23:40 +08:00
@sagaxu 恩,主要是列表可能有问题,假如要遍历导出文件的话
iyaozhen
2017-06-04 11:58:26 +08:00
一个文件夹下面不要放太多,会造成系统 inode 不够用。最好多搞几级(深度)文件夹。
huobazi
2017-06-05 10:00:51 +08:00
建议不要超过 65535 早期文件系统不支持超过 65535 的
huobazi
2017-06-05 10:06:52 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/365724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX