我的应用程序需要保留大量相当小的文件(10-100k),这些文件通常通过文件名的字符串表达式中的一些“局部性”来访问。
例如:如果访问file_5_5,像file_4_5或file_5_6这样的文件也可能在短时间内被访问。
我已经看到,web浏览器的文件缓存通常以类似于文件名的词法顺序的树的方式进行排序,这是一种哈希。例如:例如,sadisadji将驻留在s/a/d/i/ssadisadji。我猜这是为快速随机访问这些文件而优化的。
这样的树形结构对我的情况也有用吗?或者,将所有文件保存在一个位置的平面文件夹是否同样适用?
发布于 2014-02-22 09:59:00
树结构会更好,因为许多文件系统在列出包含100,000个或更多文件的单个目录时会遇到问题。
存储大量图像文件以供地图使用的.mbtiles文件格式采取的一种方法是将所有文件存储在SQLite数据库中,从而避免了在一个目录中包含数千个文件所导致的问题。它们的推理和实现如下所示:
https://stackoverflow.com/questions/21948493
复制相似问题