我的应用程序需要保留大量相当小的文件(10-100k),这些文件通常在文件名的字符串表达式中使用某些“locality”访问。
EG。如果访问file_5_5
,则可能会在短时间内访问file_4_5
或file_5_6
等文件。
我已经看到Web浏览器文件缓存通常按照类似于文件名的词法顺序的树排序,这是一种哈希。例如。例如,sadisadji
将驻留在s/a/d/i/ssadisadji
。我想这是为了快速随机访问任何这些文件而优化的。
这样的树结构对我的情况也有用吗?或者,将所有文件保存在一个位置的平面文件夹是否相同?
答案 0 :(得分:0)
树结构会更好,因为许多文件系统都无法列出包含100,000个或更多文件的单个目录。
.mbtiles文件格式采用的一种方法是存储大量用于映射的图像文件,它将所有文件存储在SQLite数据库中,避免了在目录中存储数千个文件所导致的问题。他们的推理和实施在这里描述: