加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 用于在USB驱动器上存储100k文件的最佳文件夹结构

发布时间:2020-12-14 02:57:47 所属栏目:Linux 来源:网络整理
导读:我需要在USB驱动器中存储100k文件(大约40GB).每个文件都有一个唯一的int id(例如45000). 选项一是将所有文件放在一个文件夹中: root/root/1.pdfroot/2.pdfroot/3.pdf...root/567.pdfroot/568.pdfroot/569.pdf...root/10001.pdfroot/10002.pdfroot/10003.pdf
我需要在USB驱动器中存储100k文件(大约40GB).每个文件都有一个唯一的int id(例如45000).

选项一是将所有文件放在一个文件夹中:

root/
root/1.pdf
root/2.pdf
root/3.pdf
...
root/567.pdf
root/568.pdf
root/569.pdf
...
root/10001.pdf
root/10002.pdf
root/10003.pdf
...
root/99998.pdf
root/99999.pdf
root/100000.pdf

选项二是根据该ID创建[1-9] [0-9] *文件夹层次结构:

root/
root/1/file.pdf
root/2/file.pdf
root/3/file.pdf
...
root/5/6/7/file.pdf
root/5/6/8/file.pdf
root/5/6/9/file.pdf
...
root/1/0/0/0/1/file.pdf
root/1/0/0/0/2/file.pdf
root/1/0/0/0/3/file.pdf
...
root/9/9/9/9/8/file.pdf
root/9/9/9/9/9/file.pdf
root/1/0/0/0/0/0/file.pdf

哪个选项会更好地扩展?我可以理解第二个选项需要大量的文件夹,但每个文件夹最多包含10个文件夹和1个文件.维护不会成为问题,因为一切都将由应用程序控制.

请注意,这是一个Linux上的USB驱动器,基于上面我也想知道我是否应该使用FAT32或NTFS.

解决方法

我建议将ext3 / 4用于Linux作为我个人的偏好.

对于文件结构,我建议使用选项3(目录深度和每个目录的文件的平衡).这实际上就是选择一个tree data structure.为了实现这个文件,我会对每个文件执行md5sum哈希,并使用每个文件的前x个字符作为目录.字符将始终是hexidecemial字符,因此每个分支将是16个目录宽.您选择的字符数将是树结构的高度.

例如:

kbrandt@alpine:~/scrap$md5sum y.tab.h
03b01228467fbe94f8fedd9fcbb6d470  y.tab.h

会像./0/3/b/y.tab.h这样的东西.

How to pre-create directories on linux for file storage?显示了如何预创建目录.

这是一个通用的解决方案,适用于许多用例,应该创建一个非常好的文件分发.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读