2

可能重复:
在数据库中存储图像 - 是还是不是?

很简单,我正在托管一个用户可以上传图片的网站,并且我有一个正常工作的 .net 文件上传控件。我只是想知道我应该使用什么方法将它们存储在服务器上。

  • 我可以使用 FileUpload 控件的 SaveAs() 方法将其保存为实际文件。
  • 我可以将图像分解为 Byte[] 并将其存储在数据库中以供访问。

我相信这里真正的问题是.. 我想要 IIS 或 Sql Server 2008 R2 上的负载吗?

关于我应该使用哪种方法以及为什么使用的普遍共识是什么?谢谢!

4

2 回答 2

4

没有普遍的共识,因为这两种方法都不是理想的。

将图像存储为文件意味着将应用程序扩展为在多个服务器上运行变得更加困难。然后你需要一个 SAN/NAS 来存储文件而不是本地磁盘。

将图像存储在数据库中意味着您将大量缓存空间用于图像数据,减慢其他查询速度,并且还会增加数据库的大小和备份。这也意味着您必须通过页面提供图像,您不能直接请求文件。

因此,这取决于您将拥有多少图像,以及您需要应用程序的可扩展性。

于 2013-01-25T18:52:41.587 回答
3

避免将它们放入数据库。仅仅因为几个文件,这将使您的数据库变得更大。这也会影响备份大小。

我没有看到在数据库中拥有实际文件字节有任何真正的好处。如果您有文件系统中文件的物理路径,那就足够了。

这也使您可以拥有自己的文件备份策略。

于 2013-01-25T18:49:26.523 回答