php sql filestream,FileStream应用

php sql filestream,FileStream应用FileStream:文件流,为了解决大对象BLOB(BinaryLargeObjects)的存储问题.对于大对象存储,并且不受2GB的限制.以往有两种方式:(1)存储在数据库里面,这种方式一般使用image字段,或者varbinary(max)来做,好处是可以统一备份,但实际效率较低;(2)存储在文件系FileStream:文件流,为了解决大对象BLOB(BinaryLargeOb…

大家好,又见面了,我是你们的朋友全栈君。

FileStream:文件流,为了解决大对象BLOB(Binary Large Objects)的存储问题.对于大对象存储,并且不受2GB的限制. 以往有两种方式: (1)存储在数据库里面,这种方式一般使用image字段,或者varbinary(max)来做,好处是可以统一备份,但实际效率较低; (2)存储在文件系

FileStream:文件流,为了解决大对象BLOB(Binary Large Objects)的存储问题.对于大对象存储,并且不受2GB的限制.

以往有两种方式:

(1)存储在数据库里面,这种方式一般使用image字段,或者varbinary(max)来做,好处是可以统一备份,但实际效率较低;

(2)存储在文件系统,而数据库中存储文件路径,这种方式数据库压力减轻了,但却不方便统一备份和管理.

SQL SERVER 2008新引入的文件流就是两者的统一.文件还是放在文件系统,但由数据库进行管理,可以统一备份和还原.

如何使用FileStream?

一.启用FileStream

(1)在SQL Server配置管理器中打开SQL Server数据库引擎的属性窗口.

(2)切换到FILESTREAM选项卡,选中”针对Transact-SQL访问启用FILESTREAM”,其他选项是针对windows进行读写的,都可以选中.

(3)打开SSMS连接到数据库实例(是实例,不是具体的数据库),右击数据库实例,选择”属性”选项,切换到”高级”选项页,在文件流访问级别下拉列表框中选择”已启用完全访问”

二.初始化环境

(1)添加文件组

ALTER DATABASE [DBName] ADD FILEGROUP [FileGrp1] CONTAINS FILESTREAM

(2)添加存放文件的路径

ALTER DATABASE [DBName] ADD FILE(Name=N’filestream’,FILENAME=N’C:/FileStream’) TO FILEGROUP [FileGrp1]

系统将自动创建C:/FileStream文件夹并在其中写入filestream.hdr文件,该文件是 FILESTREAM容器的头文件不能删除,一定要确保在运行该语句之前C:/FileStream并不存在。

注意:文件组必须定义在NTFS格式分区下的磁盘,并且需要指向本地文件系统位置上,不允许指向网络地址network addressable storage (NAS),除非通过 iSCSI将NAS设备设置为本地NFS卷

原文(the DBA must define a database filegroup that ties an NTFS file system location to a SQL Server database. Note that the filegroup needs to point to a local file system location; filestreams can’t live on a remote server or a network addressable storage (NAS) devices unless the NAS device is presented as a local NFS volume via iSCSI)

如数据库之前从未备份过,在执行以上语句时会提示须先备份LOG

三.模拟测试

(1)建表

CREATE TABLE FileStreamTest

(

ID uniqueidentifier ROWGUID NOT NULL UNIQUE DEFAULT NewID(),

FilesName varbinary(max) FILESTREAM NULL

)

FILESTREAM_ON [FileGrp1] –指示存储到哪一个文件流

*如果一个表要使用文件流,则必须有一个GUID列,且作为唯一键列

(2)测试数据

INSERT INTO FileStreamTest(FilesName) VALUES (CAST(‘Edwin.Koo’ AS varbinary(max)))

UPDATE FileStreamTest Set FilesName= (select txt_data From OPEMROWSET( BULK ‘C:/temp/file01.txt’,SINGLE_CLOB) As F(txt_data)) WHERE ID=’BDBF1376-5CFA-43D7-B906-4B7C8E9A7625′

对于T-SQL访问FileStream数据列是完全透明的,就如访问varbinary(max)的方式一样.

值得注意的是:无论是插入数据还是修改数据,SQL Server都将在文件系统中创建新的文件来保存最新的修改文件内容,修改或删除数据后文件系统中的文件将保留,而不会被同时删除。

ALTER DATABASE [DBName] ADD FILEGROUP [FileGrp1] CONTAINS FILESTREAM

ALTER DATABASE [DBName] ADD FILE(Name=N’filestream’,FILENAME=N’C:/FileStream’) TO FILEGROUP [FileGrp1]

CREATE TABLE FileStreamTest

(

ID uniqueidentifier ROWGUID NOT NULL UNIQUE DEFAULT NewID(),

FilesName varbinary(max) FILESTREAM NULL

)

FILESTREAM_ON [FileGrp1] –指示存储到哪一个文件流

INSERT INTO FileStreamTest(FilesName) VALUES (CAST(‘Edwin.Koo’ AS varbinary(max)))

UPDATE FileStreamTest Set FilesName= (select txt_data From OPEMROWSET( BULK ‘C:/temp/file01.txt’,SINGLE_CLOB) As F(txt_data)) WHERE ID=’BDBF1376-5CFA-43D7-B906-4B7C8E9A7625′

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162847.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦

    程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结作者:July–结构之法算法之道blog之博主。时间:2010年10月-2018年5月,一直在不断更新中..出处:http://blog.csdn.net/v_JULY_v。说明:本博客中部分文章经过不断修改、优化,已集结出版成书《编程之法:面试和算法心得》。前言开博4年有余,…

    2022年4月19日
    48
  • 轻松几步搭建你的私有云

    轻松几步搭建你的私有云私有云增加了IT的灵活性,帮助前端用户实现自助式服务。许多企业通往私有云的过程是从虚拟化起步的。从这种角度看,私有云主要是额外增加了一层灵活性,让用户可以自行部署所需的IT资源。假如你正计划部署私有云

    2022年7月1日
    22
  • Double转BigDecimal类型互转,保留俩位小数。

    Double转BigDecimal类型互转,保留俩位小数。Double转BigDecimalDoublechannelPrice=3.1452;BigDecimala=newBigDecimal(channelPrice);BigDecimalb=a.setScale(2,RoundingMode.HALF_UP);System.out.println(b);//b=3.14

    2022年5月30日
    125
  • 皮尔森相关系数(Pearson correlation coefficient)「建议收藏」

    皮尔森相关系数(Pearson correlation coefficient)「建议收藏」概述定义物理意义皮尔森距离机器学习中的应用代码实现概述皮尔森相关系数也称皮尔森积矩相关系数(Pearsonproduct-momentcorrelationcoefficient),是一种线性相关系数,是最常用的一种相关系数。记为r,用来反映两个变量X和Y的线性相关程度,r值介于-1到1之间,绝对值越大表明相关性越强。定义总体相关系数ρ定义为两…

    2022年4月20日
    596
  • docker新建镜像_docker基础镜像和项目镜像

    docker新建镜像_docker基础镜像和项目镜像Docker创建镜像、修改、上传镜像–创建镜像有很多方法,用户可以从DockerHub获取已有镜像并更新,也可以利用本地文件系统创建一个。一、创建镜像创建镜像有很多方法,用户可以从Do

    2022年8月2日
    7
  • 【Linux】 Apache配置文件详解「建议收藏」

    【Linux】 Apache配置文件详解「建议收藏」安装apache并启动[root@gaosh-64~]#yuminstallhttpd[root@gaosh-64~]#systemctlrestarthttpd[root@gaosh-64~]#systemctlenablehttpdCreatedsymlinkfrom/etc/systemd/system/multi-user.target.wants/httpd.serviceto/usr/lib/systemd/system/httpd.service.

    2022年7月14日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号