在sql server中存储图像

时间:2009-08-09 20:32:13

标签: sql sql-server sql-server-2008 filestream

我正在尝试将db设计放在一起用于存储图像。你们中的许多人可能有过设计数据库来存储图像的经验以及与之相关的挑战。

db最终可能会存储数十万个图像。我打算使用SQL Server 2008数据库和实体框架。计划使用FILESTREAM数据类型来存储图像。以下是我考虑为db中的每个图像存储的属性列表。

图像名称,图像类型,图像宽度,图像高度,图像水平分辨率,图像垂直分辨率,图像位深度以及最终的实际图像数据。

我想弄清楚的事情: 1)我很好奇,如果我错过了图像的任何其他关键属性。 2)由于使用了FILESTREAM数据类型,因为图像存储在文件系统上,因此在进行数据库备份时可能会产生什么影响?

谢谢! 陈

3 个答案:

答案 0 :(得分:3)

1)我可能会在这里做出一个疯狂的假设,但如果您的图像将是数码照片,那么您可能需要考虑存储所有(如果不是99%)数码相机生成的Exif元数据属性

2)在使用文件流执行备份时没有任何影响,SQL Server在这里做了所有繁重的工作。文件流数据将成为数据库.BAK文件的一部分,因此您不需要执行任何其他文件系统备份。

您可能没有考虑的是,因为FILESTREAM是一项新功能&因此不能与其他一些sql server功能一起使用,例如:

  • 数据库镜像
  • 复制(无法复制文件流列)
  • 数据库快照

答案 1 :(得分:0)

备份会将图像存储在其中以保持事务一致性。 至于属性,它取决于你的需求。我想不出你想念的任何其他属性。

答案 2 :(得分:0)

我还会输入编码(jpeg,gif,png,bmp ...),MIME类型(image / png)等,所以你不必每次都解析文件名;文件大小(如果需要显示)。