我已经做了一个小的演示网站,我在sql server上的一个图像列中存储图像。我有几个问题…

这是个坏主意吗? 当它增长时,它会影响我的站点的性能吗?

另一种方法是将图像存储在磁盘上,而仅在数据库中存储对图像的引用。这一定是很多人都遇到过的困境。我很欢迎你的建议,如果可以的话,我很乐意少犯一些错误。


当前回答

为什么它可以很好地存储图片在数据库中,而不是在web服务器上的目录。

您已经创建了一个应用程序,其中有大量的图片存储在服务器上的一个文件夹中,客户端已经使用了多年。

现在他们来找你。他们的服务器已经被破坏,他们需要在一个新的服务器上恢复它。他们不能再访问旧服务器了。他们拥有的唯一备份是数据库备份。

当然,您已经有了源代码,可以简单地将其部署到新服务器,安装SqlServer并恢复数据库。但是现在所有的照片都不见了。

如果你已经将图片保存在SqlServer中,一切都将像以前一样工作。

这只是我的个人意见。

其他回答

我更喜欢将图像存储在一个目录中,然后在数据库中存储对图像文件的引用。

但是,如果确实将图像存储在数据库中,则应该对数据库进行分区,以便图像列驻留在单独的文件中。

你可以在这里阅读更多关于使用文件组的信息http://msdn.microsoft.com/en-us/library/ms179316.aspx。

根据我的经验,将存储在另一个位置的图像存储到url是简单项目的最佳方式。

我曾经陷入过这样的困境,并在谷歌上进行了大量的研究以寻求意见。我发现,对于较大的图像,许多人确实认为将图像保存到磁盘更好,而mySQL允许更容易的访问,特别是从PHP等语言访问。

我发现了一个类似的问题

MySQL BLOB vs文件存储小PNG图像?

我的最终结论是,对于个人资料图片这样的东西,每个用户都需要一个小的方形图像,mySQL会比在硬盘上存储一堆拇指更好,而对于相册和类似的东西,文件夹/图像文件更好。

希望能有所帮助

2012年发布了另一个选项,名为文件表:https://msdn.microsoft.com/en-us/library/ff929144.aspx

为什么它可以很好地存储图片在数据库中,而不是在web服务器上的目录。

您已经创建了一个应用程序,其中有大量的图片存储在服务器上的一个文件夹中,客户端已经使用了多年。

现在他们来找你。他们的服务器已经被破坏,他们需要在一个新的服务器上恢复它。他们不能再访问旧服务器了。他们拥有的唯一备份是数据库备份。

当然,您已经有了源代码,可以简单地将其部署到新服务器,安装SqlServer并恢复数据库。但是现在所有的照片都不见了。

如果你已经将图片保存在SqlServer中,一切都将像以前一样工作。

这只是我的个人意见。