有人可以给我一些有关如何将图像文件保存到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所说的那样,文件流不存储在DB的页面中,因此不会影响性能。

虽然,将文件存储在数据库中意味着您的数据库备份将变得更大。

其他人提到仅存储URL。这也是一个好主意,也许是简单设置的每个实义最大的主意。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top