0

有人可以给我一些关于如何将图像文件保存到 C# 中的数据库的建议吗?我将保存大量图像,那么减少所需空间的最佳方法是什么?我目前在数据库中使用 varbinary(max) 字段。

谢谢!

4

5 回答 5

3

如果您必须将实际文件存储在 SQL 中,那么请确保您对图像的大小进行了一些限制,并确保您正确规划了数据库的大小——您期望有多少张图像和多大的大小?

如果您必须将其存储在 SQL 中,我的偏好是自动将其放在自己的 SQL 数据库中。这样,我在使用这些图像时遇到的任何性能问题都不会影响我的数据库的其余部分。

现在,如果您不必将图像存储在 SQL 数据库中,那么我认为这只是要求使用 Azure Blob 存储来完成。去看看它 - 它会在一个非常有效的系统中为您提供您想要的东西。

如果您不能使用 Azure,那么您应该组合一个类来处理文件系统中图像的读/写/查找。保存到文件系统(正确完成)将比保存到 SQL 更好。

于 2011-04-27T15:15:24.140 回答
1

那会很好。但是,如果这些图像太大并且您的 DBA 可能不再喜欢 oyu 将它们放在那里,您可以将它们放在驱动器上的某个地方并将位置存储在 DB 中。

我想有很多方法可以处理这个问题。只是权衡你的利弊。

我只是给了你一个选择。

于 2011-04-27T15:01:16.053 回答
1

将图像存储在数据库中不是一个好主意。您可以将网址存储到图像。

于 2011-04-27T15:01:45.820 回答
0

图片是什么格式,您使用的是什么数据库技术?

一种选择是将图像转换为二进制数组并将其推送到您的数据库。我在 codeproject 找到了一些关于如何完成此任务的好代码:

http://www.codeproject.com/KB/aspnet/ImageInDatabase.aspx

于 2011-04-27T15:06:50.660 回答
0

正如 Magnus 所说,FileStreams 不存储在数据库的页面中,因此不会影响性能。

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

其他人提到只存储 URL。这也是一个好主意,并且可能是简单设置中性能最高的。

于 2011-04-27T15:44:10.113 回答