探讨-信息管理系统中,图像、文件数据存储方式

      常用的信息管理系统,经常会有大量的法规、图像、附件等文件需要存放,与之相对的许多大型数据库系统也有对应的数据库类型用于存放,然而,在一些大型应用管理系统中,常常会因为这些数据类型的存在或者数据库设计的不合理,导致系统非常慢、所需的存储空间非常大等一系列让设计、开发人员非常烦心的事情,究竟该如何来解决这些常见的问题,或者有没有这类最佳设计实践呢?在这里我们一起来探讨一下这类问题吧,或许能帮助到你。

      在关系型数据库中,大数据量图像数据等大型对象是由lob型字段来进行存取的。以Oracle数据库为例,lob型数据有以下几种:
Clob: 可以存储单字节型数据
Nclob:存储定宽的多字节国家字符集数据
Blob: 可以存储无结构的二进制数据。
Bfile: 应对Oracle数据库以外存储的大型二进制文件进行只读形式的访问。和其它三种lob类型数据不同的是,bfile类型数据存储在一个单独的文件中,该文件不由Oracle来维护。
      常见的存储策略:创建独立的表空间,使用CLOB或BLOB来存放这些数据,但是BLOB大对象数据是数据量很大的数据类型,它会占用大量的硬盘空间、内存和网络资源,因此合理地设计一个包含有BLOB大对象数据类型的属性表,对提高存储效率、查询速度应该有一定的提高。

      个人认为,尽量不使用BLOB存储二进制大对象,也可以存储于表外,作为文件系统,数据类型的选择要根据将要存储的BLOB的实际大小。假如数据不会超过8K,那么就使用Varchar或者varbinary数据类型。假如这些大对象的尺寸超过8K,那么就作为文件存储于操作系统,表中只存储对应的指针。

      与之对应,bfile字段实际的文件在文件系统中,字段中存储的是文件定位指针.bfile对oracle来说是只读的,且也不参与事务性控制和数据恢复。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值