在WEB开发中经常会遇到写文件的情况,最常见的莫过于保存图片文件。如果是文件数量不多,那我们完全没有必要担心其效率问题。但是当你有大量的用户,大量的图片的时候,我们怎么存储图片文件,就会直接影响整个图片存储系统的效率。

通常,有一种说法是:如1个目录下有10000个子文件,那么读取某个文件的速度将会明显下降。那这种说法到底正确不正确呢?下面我们来看一下:

问:为什么单目录下子文件过多会影响性能?如1个目录下有10000个子文件,那么读取某个文件的速度将会明显慢下来?这和文件索引有关吗?索引中如何组织这些节点?

答:是的,与索引有关。1w个不算多。上百万个就看出来了。但是建议不要超过10000个。

问:上百万个慢是文件系统整体吧,那么和当前目录怎么关系上呢?一个差不多的文件系统支持几百万个文件不算什么

答:我是说一个目录下,不分子目录,直接放他几十万上百万的文件,此时检索这个目录索引很费资源。

支持数量有限是因为目录这个对象本身容纳的大小有被限制,目录就是一个容纳文件名和文件对应inode号的容器,被限制了,那么容纳的条目也就被限制了。

读取某个文件速度没影响。但是查找就费劲了。某些文件系统的索引机制不完善,甚至没有什么优化算法,致使每次查找耗费更多的时间。

从上面的问答我们可以知道,“如1个目录下有10000个子文件,那么读取某个文件的速度将会明显下降。”的说法是对的。那如何分目录呢?

其实也比较简单,可以按月份分,hash分,时间加hash组合分,至于用哪种方法,那就要看你的项目需求了。。。

大量小文件存储提高效率要点详解相关推荐

  1. python 提高文件查询效率_Python 大量小文件存储提高效率的简单示例

    这篇文章主要为大家详细介绍了Python 大量小文件存储提高效率的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧 ...

  2. 海量小文件存储与Ceph实践

    海量小文件存储(简称LOSF,lots of small files)出现后,就一直是业界的难题,众多博文(如[1])对此问题进行了阐述与分析,许多互联网公司也针对自己的具体场景研发了自己的存储方案( ...

  3. FastDFS小文件存储原理

    小文件存储 需要小文件存储的原因 小文件应用场景 小文件存储带来的问题 FastDFS小文件机制配置 FastDFS合并存储文件命名与文件 启动小文件存储时服务返回给客户端的fileid有变化 Tru ...

  4. 【硬件】存储的RAID技术详解

    存储的 RAID 技术详解 1.RAID 技术: 存储中的控制器将硬盘按照某种规则进行整合,从而加快了存储中硬盘的读写效率. 2.RAID 技术特点 ( 1 )提供存储中硬盘的冗余 ( 2 )提高存储 ...

  5. NFS共享存储服务(图文详解)

    NFS共享存储服务(图文详解) 一.NFS简介 二.NSF服务 1./etc/exports 配置文件 格式 2.服务器使用NFS发布共享资源 ①安装 nfs-utils.rpcbind 软件包 ②. ...

  6. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解

    如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...

  7. mysql小计_Mysql必读用SQL实现统计报表中的小计与合计的方法详解

    <Mysql必读用SQL实现统计报表中的"小计"与"合计"的方法详解>要点: 本文介绍了Mysql必读用SQL实现统计报表中的"小计&qu ...

  8. [免费专栏] Android安全之数据存储与数据安全「详解」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  9. Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)

    文章大纲 引言 一.DirectFragment 1.当选中DirectoryFragment中RecyclerView的Item时 2.选中DirectoryFragment中RecyclerVie ...

最新文章

  1. C语言再学习--关键字
  2. 开源软件 cadsurf 阅读笔记
  3. 软件工程师所需掌握的“终极技术”是什么?
  4. Spring集成Memcached三种方式(一)
  5. php仿微信朋友圈网站源码,Smobiler仿微信朋友圈的消息代码实例
  6. 指纹、面部、语音识别技术,破解真的很简单!| 知乎
  7. 从socket中可以获取信息
  8. 美赛、国赛数学建模优秀范文 O奖、国一
  9. ESP32 WS2812B灯带 代码
  10. linux apache找不到woff2,IIS Web部署: svg/woff/woff2字体找不到
  11. 【学术版】《最强大脑记忆力训练教程》
  12. python画条状图_Python 绘制分组条形图
  13. matlab 课程总结,matlab/simulink学习的笔记都总结在这里
  14. ARM惹众怒,美国芯片行业也开始抛弃它,跟随中国芯片支持新架构
  15. 《大魔术师》:给内地闹剧变个“魔术”
  16. Lazada卖家上传产品实操,采采Lazada上货铺货助手,一键采集刊登上架,批量上品删除宝贝上下架更改产品属性,自动翻译,图片文字翻译
  17. 用Mind Map 激发你的记忆潜能
  18. 2018山西中考计算机软件名称,2018山西中考信息技术|阳泉2018年中考信息技术考试安排...
  19. 盛元广通高校实验室管理系统
  20. 全国计算机大赛价值,奖品总价值17万的ProArt视觉创作大赛就等你啦!

热门文章

  1. java基本语法——常量、变量、数据类型
  2. 苹果树(线段树+Dfs序)
  3. linux命令(常用)
  4. 关于 app测试工具
  5. 线程对象Android 开发之多线程处理、Handler 详解
  6. ASP.NET MVC经典项目ProDinner项目解析(3)
  7. HDU 4162 Shape Number(最小表示法)
  8. C#实现Base64编码与解码
  9. Tech·Ed 2007大会课程内容
  10. Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案