在内部存储中保存大量图片的最佳实践相关问题咨询
两种方案选型结论
两种方案没有绝对的优劣,完全取决于你的业务侧重,可参考以下维度判断:
各方案适用场景对比
- 直接存子目录方案:适合文件总数量在10万以下、图片高频读写、需要支持单文件增删改的场景。
该方案的最大问题「单目录文件过多」完全可以通过哈希打散多级子目录的方式解决:将图片文件名做哈希运算后,取哈希值前2位作为一级目录、3-4位作为二级目录存储,即可把单目录下的文件数控制在百级以内,规避文件系统单目录性能瓶颈,同时保留直接路径读取的低开销优势,是绝大多数业务场景下的最优选择。
- 归档存储方案:适合文件总数量超100万、图片低频访问、仅需批量读取/恢复、有整包加密/校验需求的场景。
该方案除了读取时的解压计算开销外,还有单文件修改成本极高的缺陷:如果需要修改/删除归档中的某一张图片,需要重写整个归档文件,IO开销极大,非特殊场景不推荐优先使用。
通用最佳实践
绝大多数面向用户的应用图片存储场景,优先选择「哈希打散多级子目录存单文件」的方案即可,兼顾性能和可维护性,性价比远高于归档方案。
内容的提问来源于stack exchange,提问作者Simone
相关产品推荐
相关产品推荐

