BLOB存储图片文件二进制数据是非对错

子在一天一天虚度,生活也在一天一天中茫然

做人做事哪能尽如人意,付出多少收获多少虽然存在偏颇,但是不劳而获的心态是万万不对的,更不能去怨天尤人,低调为人、做好自己就可以了

改进你的系统的最好的方法是先避免做“蠢事”。我并不是说你或你开发的东西“蠢”,只是有些决定很容易被人们忽略掉其暗含的牵连,认识不到这样做对 系统维护尤其是系统升级带来多大的麻烦。作为一个顾问,像这样的事情我到处都能见到,我还从来没有见过做出这样的决定的人有过好的结果的。

  图片,文件,二进制数据

  既然数据库支持 BLOB 类型的数据,把文件塞进 BLOB 字段里一定没有错了!?错,不是这样的!别的先不提,在很多数据库语言里,处理大字段都不是很容易。

  把文件存放在数据库里有很多问题:

  • 对数据库的读/写的速度永远都赶不上文件系统处理的速度
  • 数据库备份变的巨大,越来越耗时间
  • 对文件的访问需要穿越你的应用层和数据库层

  这后两个是真正的杀手。把图片缩略图存到数据库里?很好,那你就不能使用 nginx 或其它类型的轻量级服务器来处理它们了。

  给自己行个方便吧,在数据库里只简单的存放一个磁盘上你的文件的相对路径,或者使用 S3 或 CDN 之类的服务。

  短生命期数据

  使用情况统计数据,测量数据,GPS 定位数据,session 数据,任何只是短时间内对你有用,或经常变化的数据。如果你发现自己正在使用定时任务从某个表里删除有效期只有一小时,一天或数周的数据,那说明你没有找对正确的做事情的方法。使用 redis,statsd/graphite, Riak,它们都是干这种事情更合适的工具。这建议也适用于对于收集那些短生命期的数据。

  当然,用挖土机在后花园里种土豆也是可行的,但相比起从储物间里拿出一把铲子,你预约一台挖土机、等它赶到你的园子里挖坑,这显然更慢。你要选择合适的工具来处理手头上的事。

  日志文件

  把日志数据存放到数据库里,表面上看起来似乎不错,而且“将来也许我需要对这些数据进行复杂的查询”,这样的话很得人心。这样做并不是一个特别差的做法,但如果你把日志数据和你的产品数据存放到一个数据库里就非常不好了。

  也许你的日志记录做的很保守,每次 web 请求只产生一条日志。对于整个网站的每个事件来说,这仍然会产生大量的数据库插入操作,争夺你用户需要的数据库资源。如果你的日志级别设置为 verbose 或 debug,那等着看你的数据库着火吧。

  你应该使用一些比如 Splunk Loggly 或纯文本文件来存放你的日志数据。这样去查看它们也许会不方便,但这样的时候不多,甚至有时候你需要写出一些代码来分析出你想要的答案,但总的来说是值得的。

  可是稍等一下,你是那片不一样的雪花,你遇到的问题会如此的不同,所以,如果你把上面提到的三种东西中的某一种放到了数据库里也不会有问题。不,你错了,不,你不特殊。相信我。

posted on 2014-09-29 22:53 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/ruiy/p/4001100.html

BLOB存储图片文件二进制数据是非对错相关推荐

  1. mysql以blob存储图片文件的存储和读取问题解决

    BLOB存储图片格式问题 因为项目需要存储网络上用户头像的信息,前面的文章也说过存储的方法,后来为了锻炼自己,就选择了以blob形式存储图片,而非图片路径.之前因为做的是一个网站的图像采集,存入数据库 ...

  2. 如何拿到一个图片的二进制数据

    表单二进制 派发接口任务的过程中有的请求体不是json格式,有可能是一个表单二进制,那么我们就可以通过上传一个图片就可以成功派发该接口任务,接口会将图片变成一连串的字符串,存到服务器中,然后就可以开始 ...

  3. mysql 图片转为二进制_php 图片转为二进制数据的方法

    在 mysql 数据库中是无法直接存放图片文件的,但如果将图片通过 php 程序转换成二进制数据就可以很轻松的存放到数据库中了.那么这篇文章就说一下,利用 php 将图片文件转换二进制数据的方法. p ...

  4. mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...

    <Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)>要点: 本文介绍了Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可 ...

  5. 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )

    文章目录 图形文件准备 ( PNG 文件 ) PNG 文件信息分类 数据块结构 IHDR 数据块 简介 IHDR 数据块 结构 图形文件准备 ( PNG 文件 ) 分析的文件准备 : 1.创建文件 : ...

  6. java mysql blob 存储图片_Java操作mysql存储图片

    http://bbs.chinaunix.net/archiver/tid-2289421.html 1把图片当成一个二进制流就可以了 .mysql中有可以存储很大的2进制流文件.用的类型是: 我们要 ...

  7. 第一次使用Winhex直接修改文件二进制数据

    下面使用Winhex来尝试直接修改文件的二进制数据. 首先选择一个图片文件来做修改练习.如果直接修改EXE文件,可能产生不可预料的后果. 打开一个图片文件,如下: 下划红线的按钮就是Winhex的修改 ...

  8. SQLite数据库如何存储和读取二进制数据

    1.       存储二进制数据 SQLite提供的绑定二进制参数接口函数为: int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n ...

  9. 腾讯云COS对象存储图片文件API的详细步骤过程

    首先创建一个桶.相当于你存储图片的容器.我这里是存储图片. 我选则是共有读,私有写.因为不选择共有读的话,以后别的地方没办法访问 注意: 公有读权限可以通过匿名身份直接读取您存储桶中的数据,存在一定的 ...

  10. blob二进制显示在html,使用Blob获取图片并二进制显示实例页面

    HTML代码: JS代码: var eleAppend = document.getElementById("forAppend"); window.URL = window.UR ...

最新文章

  1. Coolite Toolkit学习笔记五:常用控件Menu和MenuPanel
  2. tomcat修改默认web目录
  3. 使用Flutter之后,我们的CPU占用率降了50%
  4. php date 毫秒_高性能的PHP日志系统 SeasLog 使用
  5. BSP application view instance lifetime analysis
  6. 基于角色的权限管理数据库设计(RBAC)
  7. Rube GoldbergSpring整合
  8. huffman树_笃学不倦|c语言构造哈夫曼树哈夫曼编码
  9. 一篇文章带你吃透 hashmap(面试指南升级版)
  10. 判断回文(0315)SWUST-OJ
  11. hadoop的同类技术_Hadoop和Spark的区别是什么?现在都流行用哪种技术?
  12. Jumpserver代码规范
  13. 鼠标被计算机无法识别怎么办,win7系统usb鼠标无法识别怎么解决 电脑usb鼠标无法识别解决方法...
  14. 深入浅出Linux设备驱动编程--设备驱动中的异步通知
  15. mysql优化(关联查询优化)
  16. GIS实验之房价数据可视化分析
  17. Fall 2020 Berkeley cs61a hw03答案
  18. python下载图片代码_基于Python下载网络图片方法汇总代码实例
  19. 蜀门linux服务端架设,蜀门1296LINUX私服服务端(红旗6架设视频+工具)
  20. 演化策略(Evolutionary Strategies)

热门文章

  1. 智能优化算法:野马优化算法-附代码
  2. 《深度学习Python实践》第13章——审查回归算法
  3. ArcGIS 使用等高线和高程点数据生成DEM栅格数据
  4. 【ArcGIS|空间分析】求年度NDVI最大值图像和NDVI最大值出现日期图像
  5. PHP文件操作-读取数据库文件路径复制到另一个目录
  6. RTOS osDelay和taskDelay关系
  7. oracle没有时间的语句,oracle时间处理语句
  8. 图解HTTP协议笔记
  9. go语言学习---数据类型、运算符、表达式
  10. mysql 索引重复 更新_MySQL——ON DUPLICATE KEY UPDATE添加索引值实现重复插入变更update...