V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
coldwinds
V2EX  ›  PHP

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

  •  
  •   coldwinds · Jun 3, 2017 · 4670 views
    This topic created in 3260 days ago, the information mentioned may be changed or developed.
    目前有很多小文件,100w 个以上,打算分到多级目录下,那么一个目录存多少文件比较适合不影响效率呢?

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

    有类似经验的 v 友吗
    11 replies    2017-06-05 10:06:52 +08:00
    springmarker
        1
    springmarker  
       Jun 3, 2017
    根据文件名的哈希值来行吗
    yidinghe
        2
    yidinghe  
       Jun 3, 2017 via Android
    我遇到过单个目录文件超过 65535 个之后无法创建新文件。
    Huuluo
        3
    Huuluo  
       Jun 3, 2017
    目前做法放 1W
    alex321
        4
    alex321  
       Jun 3, 2017 via Android
    我们的系统上设计每层放 999 个。
    coldwinds
        5
    coldwinds  
    OP
       Jun 4, 2017 via Android
    @springmarker 因为有连续 ID 所以就按 ID 来分了,就看 ID 怎么分段了
    springmarker
        6
    springmarker  
       Jun 4, 2017
    哈希是 16 进制,假设文件“你好.txt ”的 md5 是 1F 88 90 7F 50 67 04 A3,按照哈希值分段分配目录,因为是 16 进制,一个目录下最少可以只有 16 个目录。2 个字节算一个目录的话就是一个目录下最多有 256 个目录,目录的深度是 8,当然最后 4 个字节可以不做目录,这样深度就是 6。当然有很多其他分法。
    (应该是这样的,哈哈哈)
    sagaxu
        7
    sagaxu  
       Jun 4, 2017   ❤️ 1
    只是 open+read/write,100 万个即使不分级,也不会影响太大。但是有些 SB 语言的 SB 库,会读整个目录的文件列表,100 万个就悲剧了,1000 个比较合理。
    coldwinds
        8
    coldwinds  
    OP
       Jun 4, 2017
    @sagaxu 恩,主要是列表可能有问题,假如要遍历导出文件的话
    iyaozhen
        9
    iyaozhen  
       Jun 4, 2017 via Android
    一个文件夹下面不要放太多,会造成系统 inode 不够用。最好多搞几级(深度)文件夹。
    huobazi
        10
    huobazi  
       Jun 5, 2017
    建议不要超过 65535 早期文件系统不支持超过 65535 的
    huobazi
        11
    huobazi  
       Jun 5, 2017
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5536 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 01:30 · PVG 09:30 · LAX 18:30 · JFK 21:30
    ♥ Do have faith in what you're doing.