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

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

概述我需要在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/1000 我需要在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...root/99998.pdfroot/99999.pdfroot/100000.pdf

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

root/root/1/file.pdfroot/2/file.pdfroot/3/file.pdf...root/5/6/7/file.pdfroot/5/6/8/file.pdfroot/5/6/9/file.pdf...root/1/0/0/0/1/file.pdfroot/1/0/0/0/2/file.pdfroot/1/0/0/0/3/file.pdf...root/9/9/9/9/8/file.pdfroot/9/9/9/9/9/file.pdfroot/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.h03b01228467fbe94f8fedd9fcbb6d470  y.tab.h

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

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

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

总结

以上是内存溢出为你收集整理的linux – 用于在USB驱动器上存储100k文件的最佳文件夹结构全部内容,希望文章能够帮你解决linux – 用于在USB驱动器上存储100k文件的最佳文件夹结构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1036727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存