最近,我最近开始从事一个将处理数百万个文件的项目。要存储它们,我需要一个好的目录结构。
因此,起初,我尝试按它们的上传日期来存储它们,例如2016/06/24/file_name.ext
。但是我很快意识到这是一个非常糟糕的主意。
搜索Google并阅读了一些文章后,我们发现了有关哈希目录结构的信息。
为了测试这个想法,我获取了一个文件并创建了该文件的MD5哈希。然后添加一些随机字符/盐以避免将来发生哈希冲突。
所以现在目录结构看起来像这样:
a/94a/8fe/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3.ext
现在,我的问题是:
我知道我的根目录将具有最大的16
目录,并且每个目录都将包含16^3 = 4096
。该4096
目录也是如此。但是我无法计算目录a/94a/8fe/
包含多少个文件?是16^7
吗?
修改: 文件大小可以从10MB到15GB不等。这些文件存储在服务器中,该服务器充当主站点的临时服务器。
如果您认为此方法不好,建议我使用其他结构。
提前谢谢你们。英语不是我的母语,所以对任何语法错误感到抱歉。
如果它是重复的或已经讨论过,请删除此问题。