在MSSQL与磁盘

时间:2015-06-08 09:28:26

标签: sql-server image filesystems storage

我正在基于MSSQL数据库在C#.NET中开发一个内部应用程序。 用户可以上传链接到特定实体的图像。这些图像通常大约为4到5 MB,无法压缩存储。

现在这些图像存储在应用程序所在的文件系统中。打印图像子集时可能存在滞后问题,可能是30.它们通过DB进行过滤,并通过我从数据库获取的位置字符串加载,然后

Sytem.Drawing.Image.FromFile(locationstring)

我可以(并且必须)调整图像的大小以进行打印(400x255像素),以便在他们需要具有原始尺寸和质量的应用程序中查看它们。

我应该重新设计图片的存储方式并实现一个功能,用户可以更改图像链接的实体(我已经想到的那个)。

我通过应用程序存储图像时重命名图像 - 它们获得GUID作为名称 - 原始名称和它们所属的实体存储在数据库中。 我在考虑将这些图像存储在DB而不是filesytem中。它们位于用户无权访问的目录中,因此它们不会对它们产生任何影响。

在这种情况下,将图像存储在数据库而不是文件系统中是否有意义?

目前应用程序数据库是MSSQL2008R2,但可以切换到MSSQL2014。 MSSQL服务器和文件系统在外部托管,可通过Citrix访问。该应用程序也通过Citrix托管。

1 个答案:

答案 0 :(得分:0)

您应该将图像存储在磁盘中,其路径应存储在数据库中。 如果要重新调整图像大小(使用C#代码),请将其放入另一个文件夹并将其路径存储在db

有关详细信息,请参阅

Storing Images in DB - Yea or Nay?

PHP to store images in MySQL or not?