对于大量文件来说,最好的目录结构是什么?考虑到我有2000多万个文件使用number_id作为文件名(例如13842985.xml)。
如果是这样的话
filename : 13842985.xml
directory : 1/3/8/13842985.xml当所有文件均匀地分布在每个目录和子目录中时,我如何正确地执行此操作。
发布于 2011-06-09 23:42:04
将您的方法稍微更改为:
filename : 13842985.xml
directory : 842/985/13842985.xml # use the 6 last to create the directory name我假设文件名是随机的。此方案将创建1000个顶级文件夹,每个文件夹包含1000个子文件夹。通过从最后一位而不是第一位开始,可以防止长文件名:
filename : 138429851234.xml
directory : 851/234/138429851234.xml希望这能有所帮助!
编辑:通过首先散列文件名并使用这个数字,您将避免退化的情况(例如,只在开头变化)。
发布于 2011-06-09 23:33:11
您可以创建类似于trie的目录结构。
发布于 2011-06-09 23:34:45
做一些基准测试,找出必须扫描多个目录之间的折衷比扫描单个目录中的“许多”文件更便宜。
在某些情况下,打开/扫描/安全检查/等的文件系统开销...在每个目录层上,您添加的文件将比解析目录以找到您想要的单个文件所节省的成本更高。这就是你的分割/分层截止点的级别。
https://stackoverflow.com/questions/6295409
复制相似问题