问题描述
|
有人可以给我一些有关如何将图像文件保存到C#中的DB中的建议吗?
我将保存大量图像,所以减小空间的最佳方法是什么
需要吗?
我目前正在使用DB中的varbinary(max)字段。
谢谢!
解决方法
如果必须将实际文件存储在SQL中,请确保对图像大小设置一些限制,并确保正确规划数据库的大小-期望多少个图像和什么大小?
如果必须将其存储在SQL中,我的偏好是自动将其放在自己的SQL数据库中。这样,我在这些映像中遇到的任何性能问题都不会影响数据库的其余部分。
现在,如果您不必将图像存储在SQL数据库中,那么我认为这只是要求使用Azure Blob存储来完成。请看一下它-它会为您提供非常高效的系统中想要的东西。
如果您不能使用Azure,则应该将一个类组合在一起,该类将处理对文件系统的图像读取/写入/查找。保存到文件系统(正确完成)比保存到SQL要好得多。
,那就好了。但是,如果这些映像很大,并且您的DBA可能不再喜欢oyu将它们放在其中,则可以将它们放在驱动器上某个位置,然后将位置存储在DB中。
我猜有很多方法可以解决这个问题。权衡利弊即可。
我只是给你一个选择。
,在数据库中存储图像不是一个好主意。您可以将URL存储到图像。
,图片是什么格式,您正在使用什么数据库技术?
一种选择是将图像转换为二进制数组,然后将其推送到数据库。我在codeproject上找到了一些不错的代码来解决这个问题:
http://www.codeproject.com/KB/aspnet/ImageInDatabase.aspx
,就像Magnus所说的那样,FileStreams不存储在数据库的页面中,因此它不会影响性能。
尽管将文件存储在数据库中意味着您的数据库备份将变得更大。
有人提到只存储URL。这也是一个好主意,对于简单的设置来说,可能是性能最高的。