在 MSSQL 与磁盘中存储图像

Storing images in MSSQL vs Disk

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

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

Sytem.Drawing.Image.FromFile(locationstring)

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

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

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

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

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

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

更详细的可以看

Storing Images in DB - Yea or Nay?

PHP to store images in MySQL or not?