iConnect
V2EX  ›  问与答

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

  •  
  •   iConnect · Oct 26, 2017 via Android · 5057 views
    This topic created in 3301 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
    chenset
    Oct 26, 2017❤️1
    1
    目录分层一下就好了. 按时间什么的.
    whileFalse
    whileFalse
    Oct 26, 2017❤️1
    2
    会。
    建议将 123456789abcdef.png
    存储为 12345/6789a/bcdef.png
    或者是 12345/6789a/123456789abcdef.png
    ksupertu
    ksupertu
    Oct 26, 2017 via iPhone❤️1
    3
    装个 ceph 集群就行了
    asdf123101
    asdf123101
    Oct 26, 2017 via Android❤️1
    4
    图片路径存数据库或者哈希表,文件名:路径,通过文件名搜索。
    Izual_Yang
    Izual_Yang
    Oct 26, 2017 via Android❤️1
    5
    @whileFalse 分太多文件夹了吧,一般不都是 12/ab/这样的么
    zhujunsan
    zhujunsan
    Oct 26, 2017❤️1
    6
    @whileFalse  如果是 ext4 文件系统的话,对文件夹内文件对数量基本上没啥限制,不过对子目录有限制,所以 5 位哈希感觉太长了

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