对于大量的文件,什么样的目录结构是最好的。
考虑到我有超过2000万个使用数字id作为文件名的文件(例如13842985.xml)。
如果能配上这样的东西
filename : 13842985.xml
directory : 1/3/8/13842985.xml
我如何才能做到这一点,其中所有的文件分散均匀在每个目录和子目录。
最佳答案
请将您的方法稍微改为:
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
希望这有帮助!
编辑:首先散列文件名,然后使用这个数字,可以避免退化的情况(例如,只在开头变化)。