这篇文章主要为大家详细介绍了Python 大量小文件存储提高效率的简单示例,具有一定的参考价值,可以用来参考一下。

对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!

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

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

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

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

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

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

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

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

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

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

注:关于Python 大量小文件存储提高效率的简单示例的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:文件存储

您可能感兴趣的文章

python 提高文件查询效率_Python 大量小文件存储提高效率的简单示例相关推荐

  1. python按行读取文件效率高吗_Python按行读取文件的实现方法【小文件和大文件读取】...

    本文实例讲述了Python按行读取文件的实现方法.分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #func ...

  2. 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度--windows上的最快拷贝软件FastCopy ...

  3. java将一个大文件拆分成几个小文件输出

    java读取一个大文件写到多个小文件 最近看Java面试中有问到关于利用java io流,读取一个大文件,然后输出到几个小文件的问题,这里自己写了个简单的sample public static vo ...

  4. python读取大文件的某行_Python按行读取文件的实现方法【小文件和大文件读取】...

    本文实例讲述了Python按行读取文件的实现方法.分享给大家供大家参考,具体如下: 小文件: #coding=utf-8 #author: walker #date: 2013-12-30 #func ...

  5. python中写入csv文件的方法_Python写入CSV文件的方法

    python笔记5-python2写csv文件中文乱码问题 前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面 ...

  6. python实现火车票查询工具_Python 实现一个火车票查询的工具

    原标题:Python 实现一个火车票查询的工具 作者 sexycoder 本文转载自简书,转载需授权 使用 python 实现一个查询火车票的小工具 主要功能: 输入出发车站,到达车站,时间,然后返回 ...

  7. python数据存储用什么_Python的小数据存储,用什么格式更有逼格?

    小数据存储 我们在编写代码的时候,经常会涉及到数据存储的情况,如果是爬虫得到的大数据,我们会选择使用数据库,或者excel存储.但如果只是一些小数据,或者说关联性较强且存在存储后复用的数据,我们该如何 ...

  8. python读取大文件的坑_Python读取大文件的坑“与内存占用检测

    python读写文件的api都很简单,一不留神就容易踩"坑".笔者记录一次踩坑历程,并且给了一些总结,希望到大家在使用python的过程之中,能够避免一些可能产生隐患的代码. 1. ...

  9. python创建文件夹 覆盖_Python 创建新文件时避免覆盖已有的同名文件的解决方法...

    思路:创建文件时,先检查是否有同名文件(使用os.path.isfile),如果有,则在文件名后加上编号n来创建. 关键点: 1. 使用os.path.isfile判断文件是否存在 2. 使用递归函数 ...

最新文章

  1. 串口的偶校验位设置_详解UART串口
  2. kali在执行 apt-get update 命令时报错的解决方法
  3. PMcaff专属产品经理的免费培训课,3月8日北京站第一期开课倒计时!
  4. redis配置实例及redis.conf详细说明
  5. java知识大全积累篇
  6. java nature_Java中BufferedReader和scanner的对比 - nature
  7. itextsharp c# asp.net 生成 pdf 文件
  8. 凸优化问题中的Bregman迭代算法
  9. C++学习笔记——虚函数
  10. hibernate Day1 案例代码
  11. 在苹果Mac中的“照片”应用中创建幻灯片放映?
  12. lisp块改色_关于CAD制图的技巧:篇九,快速修改颜色。
  13. 云栖大会压轴好戏 阿里云智能视频云专场划重点啦!
  14. 【全国大学生IoT设计竞赛】安谋科技灵动赛题国赛一等奖分享:多足仿生机器人
  15. sketchup制作模型加载进cesium
  16. 元宇宙行业也有冬天!Meta将裁员数千人 小扎狠过马斯克
  17. ERP与MBA的关系
  18. jQuery源码解析(架构与依赖模块)第一章 理解架构
  19. 获取股票实时交易数据的方法
  20. 突发!TensorFlow技术主管皮特·沃登离职,重返斯坦福读博:我在谷歌“太难了”!...

热门文章

  1. IDL关系运算符Eq Ne Le Lt Gt Ge含义说明
  2. 惠普10亿美元锻造Helion云品牌
  3. 2012年度IT博客大赛【星光评委】申请说明
  4. Socket.IO介绍:支持WebSocket、用于WEB端的即时通讯的框架
  5. 阿里巴巴发布首个知识引擎研究计划,联合清华浙大等五大高校攻坚AI推理
  6. 解析Linux 多应用程序docker自动部署脚本
  7. 【1】万魂杀MMORPG研发回顾
  8. Sicily 1155. Can I Post the lette
  9. Windows Server 2008网络基础结构的实现与管理
  10. 从安全视角来看LXD容器管理程序