iConnect
V2EX  ›  问与答

Linux 服务器上文件夹,放了几十万张图片,请求一张图片,检索图片文件名会不会很慢?

  •  
  •   iConnect · Oct 26, 2017 via Android · 4760 views
    This topic created in 3137 days ago, the information mentioned may be changed or developed.
    每张图片的文件名都是 hash 过的 16 位随机文件名,web 请求一张图片:

    https://xxx.com/api/img/***.png

    要在一个有大量的图片文件夹中找出 ***.png 会不会很慢?有什么检索的索引方式吗?
    14 replies    2017-10-26 14:44:24 +08:00
    chenset
        1
    chenset  
       Oct 26, 2017   ❤️ 1
    目录分层一下就好了. 按时间什么的.
    whileFalse
        2
    whileFalse  
       Oct 26, 2017   ❤️ 1
    会。
    建议将 123456789abcdef.png
    存储为 12345/6789a/bcdef.png
    或者是 12345/6789a/123456789abcdef.png
    ksupertu
        3
    ksupertu  
       Oct 26, 2017 via iPhone   ❤️ 1
    装个 ceph 集群就行了
    asdf123101
        4
    asdf123101  
       Oct 26, 2017 via Android   ❤️ 1
    图片路径存数据库或者哈希表,文件名:路径,通过文件名搜索。
    Izual_Yang
        5
    Izual_Yang  
       Oct 26, 2017 via Android   ❤️ 1
    @whileFalse 分太多文件夹了吧,一般不都是 12/ab/这样的么
    zhujunsan
        6
    zhujunsan  
       Oct 26, 2017   ❤️ 1
    @whileFalse  如果是 ext4 文件系统的话,对文件夹内文件对数量基本上没啥限制,不过对子目录有限制,所以 5 位哈希感觉太长了

    @Izual_Yang 嗯我也觉得。。。一层或者两层就够了
    msg7086
        7
    msg7086  
       Oct 26, 2017   ❤️ 1
    在知道文件名的情况下直接访问文件不会很慢。列表的时候才会慢。
    为了便于管理,一般建议哈希分子目录。
    12/34/123456789xxyyzz.png
    这已经把规模降到 6 万分之一了。
    zmj1316
        8
    zmj1316  
       Oct 26, 2017
    ext4 的目录应该是可以用 Btree 存的吧,默认不开的话看一下文档手动开启就行了,应该没必要手动分层
    xvx
        9
    xvx  
       Oct 26, 2017 via iPhone
    我见过 windows 服务器放大量的文件,连文件夹都打不开。
    很多博客默认按照年月来分文件夹存储是非常合理的。
    hugee
        10
    hugee  
       Oct 26, 2017 via Android
    指定了图片路径不会慢,但别去目录 ls
    northisland
        11
    northisland  
       Oct 26, 2017
    召唤数位 linux 文件系统大神的到来~~
    dalibaxiaoliba
        12
    dalibaxiaoliba  
       Oct 26, 2017
    楼主试一下 weed-fs
    ququzone
        13
    ququzone  
       Oct 26, 2017
    https://github.com/ququzone/image-server
    可以试试这个项目,专门的图片服务器,基于 seaweedfs
    pubby
        14
    pubby  
       Oct 26, 2017 via Android
    @dalibaxiaoliba 这个不错,一直用它存图片和各种文件
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2452 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 15:53 · PVG 23:53 · LAX 08:53 · JFK 11:53
    ♥ Do have faith in what you're doing.