每张图片的文件名都是 hash 过的 16 位随机文件名,web 请求一张图片:
https://xxx.com/api/img/***.png
要在一个有大量的图片文件夹中找出 ***.png 会不会很慢?有什么检索的索引方式吗?
https://xxx.com/api/img/***.png
要在一个有大量的图片文件夹中找出 ***.png 会不会很慢?有什么检索的索引方式吗?
|
1
目录分层一下就好了. 按时间什么的.
|
|
2
会。
建议将 123456789abcdef.png 存储为 12345/6789a/bcdef.png 或者是 12345/6789a/123456789abcdef.png |
|
3
装个 ceph 集群就行了
|
|
4
图片路径存数据库或者哈希表,文件名:路径,通过文件名搜索。
|
|
5
@whileFalse 分太多文件夹了吧,一般不都是 12/ab/这样的么
|
|
6
|
|
7
在知道文件名的情况下直接访问文件不会很慢。列表的时候才会慢。
为了便于管理,一般建议哈希分子目录。 12/34/123456789xxyyzz.png 这已经把规模降到 6 万分之一了。 |
|
zmj1316Oct 26, 2017
8
ext4 的目录应该是可以用 Btree 存的吧,默认不开的话看一下文档手动开启就行了,应该没必要手动分层
|
|
xvxOct 26, 2017 via iPhone
9
我见过 windows 服务器放大量的文件,连文件夹都打不开。
很多博客默认按照年月来分文件夹存储是非常合理的。 |
|
hugeeOct 26, 2017 via Android
10
指定了图片路径不会慢,但别去目录 ls
|
|
northislandOct 26, 2017
11
召唤数位 linux 文件系统大神的到来~~
|
|
dalibaxiaolibaOct 26, 2017
12
楼主试一下 weed-fs
|
|
ququzoneOct 26, 2017
13
https://github.com/ququzone/image-server
可以试试这个项目,专门的图片服务器,基于 seaweedfs |
|
pubbyOct 26, 2017 via Android
14
@dalibaxiaoliba 这个不错,一直用它存图片和各种文件
|