1、图像的存储策略

在数据库的 开发过程中,经常需要在数据库中存储一些备注信息,而这些备注信息的内容一般较大,格式多样-如有可能是语音文件、视频文件、图片文件、文本文件等,怎样 实现这些格式不同的备注文件的存取及预览,一直是开发人员比较关心的一个问题,本文系统的介绍了三种存取备注二进制信息的方法。

对备注二进制信息的存储可以采用以下三种方式;

方法一:文件保存在固定的路径下,数据库中存取文件路径和名称

方法二:数据库中用blob类型或者varbinary类型字段存储备注文件

方法三:在本地用PowerBuilder的OLE存储结构存储备注文件

三种方法的优缺点

方法一:文件保存在固定的路径下,数据库中存取文件路径和名称可以节省数据空间,避免了数据库过分膨胀,但备注文件必须在一定的目录下,不能丢失,且同 一目录下文件不能重名,对文件的管理造成一定的困难,另外,在OLE控件中浏览显示备注文件时,由于每次都要调用服务器程序,所以速度较慢。

方法二:在数据库中用blob类型或者varbinary类型字段存储备注文件,当文件存储在数据库中以后,就可以删除硬盘上原来的临时文件,不需要复杂的二进制文件管理,且数据库可以存储在网络服务器上,对数据的共享非常方便。

方法三:在本地用OLE存储结构存储备注文件。可以把所有的二进制文件信息存储在一个OLE存储文件中,管理比较方便。当二进制文件信息存储后,可以删除原来的临时文件;因为打开存储文件后不需要每次执行服务器程序来显示存储信息,所以存取速度较快。

2、SQL Server 2000存储图像数据库设计

图像数据库技术一直致力于解决海量数字图像的有效存储和管理问题。它是数据库技术的继承和发展,一方面,图像数据和文本数据存在着本质的区别,在文本数 据领域得以成功应用的传统数据库技术,如果一成不变的照搬到图像数据库领域,结果往往是低效,甚至无效;另一方面,传统数据库的许多成果,如SQL语言、 索引技术等都值得图像数据库借鉴。上述两个方面的结合成为目前图像数据库技术发展的主流。

2.1 BLOB数据类型

BLOB是非常巨大的不定的二进制或者字符型数据,通常是文档(.txt、.doc)和图片(.jpeg、.gif、.bmp),它可以存储在数据库 中。在SQL Server中,BLOB可以是text、ntext或者image数据类型。 Image数据类型存储的是长度不确定的二进制数据,最大长度是2GB。

BLOB数据在SQL Server系统中的存储方式不同于普通的数据类型,对于普通类型的数据系统直接在用户定义的字段上存储数据值,而对于BLOB类型数据,系统开辟新的存 储页面来存放这些数据,表中BLOB类型数据字段存放的仅是一个16个字节的指针,该指针指向存放该条记录的BLOB数据的页面。

2.2 BLOB的设计策略

BLOB数据是数据量很大的数据类型,它会占用大量的硬盘空间、内存和网络资源,因此合理地设计包含有BLOB数据类型的属性表,对提高存储效率、查询速度有很大的影响。一般BLOB的设计原则如下:

(1)使用BLOB数据类型还是使用varchar或者varbinary数据类型

二进制大对象并不一定要存储为text、ntext或者image数据类型,它们也可以作为varchar或者varbinary数据类型村处在表格 中。数据类型的选择要根据将要存储的BLOB的实际大小。如果数据不会超过8K,那么就使用Varchar或者varbinary数据类型。如果这些大对 象的尺寸超过8K,那么就使用text、ntext或者image数据类型。

mysql 存储 海量图片_数据库中存储大量图片设计相关推荐

  1. mysql 存储矩阵数据_mysql-在数据库中存储距离矩阵

    我需要在网页上显示城市附近所有位置的距离矩阵. 我想从Web服务中获取所有这些数据并预先保存在数据库中. 我试图找出最佳的关系数据库设计来保存此类数据. 我要避免冗余数据,也要避免提供最佳性能的设计. ...

  2. mysql 邮箱长度_数据库中电子邮件地址的最佳长度是多less?

    数据库中电子邮件地址的最佳长度是多less? 这里是我查询的一部分,反映了EMAIL_ADDRESS列的数据types和属性: EMAIL_ADDRESS CHARACTER VARYING(20) ...

  3. 什么是mysql的游标_数据库中的游标到底是什么意思

    数据库中的游标到底是什么意思 关注:177  答案:2  mip版 解决时间 2021-01-15 20:54 提问者更无风月 2021-01-15 15:53 数据库中的游标到底是什么意思 最佳答案 ...

  4. mysql中char存储中文_数据库中的字符类型存储字符和汉字的数量

    sqlServer2012(936 简体中文GBK )为例: 例如: varchar(10),只能存储10个英文字符或数字,也只能存储5个汉字: char(10),只能存储10个英文字符或数字,也只能 ...

  5. mysql 存储视频_数据库中怎样存储视频?谢谢各位

    root@ytt:/var/lib/mysql-files# for i in `seq 1 100`; do cp 微信图片_20190711095019.jpg "$i".jp ...

  6. mysql关系运算_数据库中的关系运算

    1.和(Union)运算.针对行 针对两张具有相同属 性的表,将两者表合并起来,在合并过程中遇到重复的行保留一项就行了. 2.差(difference)运算.针对行 vc3Ryb25nPjwvcD4K ...

  7. mysql 分库 框架_数据库水平分库框架设计

    1水平分库 最近在做一个IM系统,之前的旧系统没有考虑到用户量会增长得这么庞大,导致现在数据库性能瓶颈非常严重,迫切需要分库,用于减少每个库的用户数量,进而分摊负载,最终达到数据库横向扩展的目的. 数 ...

  8. 数据库中存储大量图片设计

    数据库中存储大量图片设计 1. 图像的存储策略 在数据库的开发过程中,经常需要在数据库中存储一些备注信息,而这些备注信息的内容一般较大,格式多样-如有可能是语音文件.视频文件.图片文件.文本文件等,怎 ...

  9. python获取数据库用户名密码_在数据库中存储用户和密码

    我正在创建一个用户+密码的软件.认证后,用户可以访问一些半公共服务,但也可以加密一些只有用户才能访问的文件.在 用户必须按原样存储,如有可能,无需修改.在auth之后,只要软件还在运行,用户和密码都会 ...

  10. msdb 数据库_如何检索有关存储在MSDB数据库中的SSIS包的信息

    msdb 数据库 介绍 (Introduction) Nowadays, most mid-size companies have implemented a Data Warehouse (DWH) ...

最新文章

  1. 排序 -> 选择排序
  2. 实施云计算之后如何保证安全
  3. oracle学习总结一(基础)
  4. Oracle将Java EE移交Eclipse基金会
  5. jdk1.8下载与安装教程
  6. C# WinForm界面设计教程
  7. 基于Transformer的时空融合网络地铁客流预测模型
  8. RMAN-06091 no channel allocated for maintenance
  9. 基于SSM实现高校应届生就业管理系统
  10. 玩转PS路径,轻松画logo!
  11. 字符串函数的模拟实现
  12. Oracle求同比SQL
  13. 电流检测电路公式推导
  14. js判断浏览器是否打开了控制台
  15. 【嵌入式linux】进程间通信的几种方式
  16. 视图 setVisibility 用法
  17. S5PV210开发 -- I2C 你知道多少?(一)
  18. Error launching Studio
  19. smt贴片加工厂供应链管理
  20. 微多普勒效应学习【1】

热门文章

  1. 酷!有人把火星车都造出来了,教程全面开源
  2. 计算机应用基础的课程讨论,(计算机教学论文:计算机应用基础课程教学方法的讨论.doc...
  3. 环形电流计算公式_环形变压器计算公式
  4. 烽火服务器安装系统,烽火服务器进入bios配置
  5. 把rmvb格式转化为avi格式
  6. 基于角色得后台权限管理系统设计(一、表设计)
  7. 网络安全·网络入侵检测系统
  8. POWER SWOT分析
  9. 如何解决程序/C++Dll的兼容性问题
  10. PKI加密体系加密过程及原理