文件存储:避免单个文件夹下存在过多的文件数量

[软件开发] 季雨林 2020/1/26 23:00:04

前言

刚刚写完了一篇《爬虫使用分享:风云2号卫星气象照片》的博客,憋着几句话没单独另外启动小标题,那就是关于文件夹下文件数量的存储限制。准确来说其实是操作系统不限制,但是为了方便使用才“人为干预”进行限制。


具体经过是:我从OSS客户端下载的整个Object,下载下来实际上会是全部文件都在一个文件夹下!

这个文件夹的实际体验是:5万多个的图片文件,放在一个文件夹下,用我这8核16G+ssd的电脑配置,打开都很慢

首先,windows索引慢,一个文件夹下的文件实际上要经过索引,因此首次打开文件夹就很慢,文件再多点甚至会直接打不开文件夹!

其次,查看图片慢,每次查看图片,都得等几秒、几十秒甚至更多,随机从中间找一个图片甚至打不开!


问题所在

这里反映出的问题:传统软件架构方案里,文件管理的不足。

文件夹下对于数量的多少,会直接造成对性能的影响。这种影响,只要是使用文件夹这种形式存储都会存在。因此传统系统设计中,往往都有“自动按时间创建文件夹”的做法出现,这个做法确实有效,但是这个做法对于问题的解决,只是缓解,并没有根除!


解决方案

解决方案就是我那篇博客里的建议:单独使用对象存储服务OSS,对象存储可以用来存储静态文件。

所谓静态文件,就是指图片,压缩包,文档这样的“不需要实时更新”的文件,特点是每次修改后可以持续不变化,从程序角度理解就是文件流可以关闭。非静态文件有“联机数据库文件”,特点是可以实时更新文件内容。

对象存储自身就是分布式,并且没有“文件夹”概念,因此对于数量不可控的场景特别适合。另外,web站点使用对象存储本身就是个“动静分离”的技术方案。


OSS注意事项:

OSS的费用分为6部分,其中大部分人最需要重点了解的2个费用:1公网出流量费用;2存储空间费用。参考阿里云相关产品说明和帮助文档:

《阿里云对象存储OSS购买入口》

《阿里云对象存储OSS帮助文档》

《阿里云对象存储OSS费用说明》


原文地址: https://www.opengps.cn/Blog/View.aspx?id=591 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

暂无评论!

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示