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