我已经做了一个小的演示网站,我在sql server上的一个图像列中存储图像。我有几个问题…
这是个坏主意吗? 当它增长时,它会影响我的站点的性能吗?
另一种方法是将图像存储在磁盘上,而仅在数据库中存储对图像的引用。这一定是很多人都遇到过的困境。我很欢迎你的建议,如果可以的话,我很乐意少犯一些错误。
我已经做了一个小的演示网站,我在sql server上的一个图像列中存储图像。我有几个问题…
这是个坏主意吗? 当它增长时,它会影响我的站点的性能吗?
另一种方法是将图像存储在磁盘上,而仅在数据库中存储对图像的引用。这一定是很多人都遇到过的困境。我很欢迎你的建议,如果可以的话,我很乐意少犯一些错误。
当前回答
我更喜欢将图像存储在一个目录中,然后在数据库中存储对图像文件的引用。
但是,如果确实将图像存储在数据库中,则应该对数据库进行分区,以便图像列驻留在单独的文件中。
你可以在这里阅读更多关于使用文件组的信息http://msdn.microsoft.com/en-us/library/ms179316.aspx。
其他回答
根据我的经验,将存储在另一个位置的图像存储到url是简单项目的最佳方式。
While performance issues are valid the real reasons in practice that you should avoid storing images in a database are for database management reasons. Your database will grow very rapidly and databases cost much more than simple file storage. Database backups and restores are much more expensive and time-consuming than file backup restores. In a pinch, you can restore a smaller database much more quickly than one bloated with images. Compare 1 TB of file storage on Azure to a 1 TB database and you'll see the vast difference in cost.
2012年发布了另一个选项,名为文件表:https://msdn.microsoft.com/en-us/library/ff929144.aspx
当在SQL Server中存储图像时不使用'image'数据类型,根据MS的说法,它将在新版本的SQL Server中逐步淘汰。使用varbinary(max)代替
https://msdn.microsoft.com/en-us/library/ms187993.aspx
为什么它可以很好地存储图片在数据库中,而不是在web服务器上的目录。
您已经创建了一个应用程序,其中有大量的图片存储在服务器上的一个文件夹中,客户端已经使用了多年。
现在他们来找你。他们的服务器已经被破坏,他们需要在一个新的服务器上恢复它。他们不能再访问旧服务器了。他们拥有的唯一备份是数据库备份。
当然,您已经有了源代码,可以简单地将其部署到新服务器,安装SqlServer并恢复数据库。但是现在所有的照片都不见了。
如果你已经将图片保存在SqlServer中,一切都将像以前一样工作。
这只是我的个人意见。