【问题标题】:store image in database or in a system file? [closed]将图像存储在数据库中还是系统文件中? [关闭]
【发布时间】:2010-10-20 10:40:53
【问题描述】:

完全重复: User Images: Database or filesystem storage?
完全重复: Storing images in database: Yea or nay?
完全重复: Should I store my images in the database or folders?
完全重复:Would you store binary data in database or folders?
完全重复:Store pictures as files or or the database for a web app?
完全重复:Storing a small number of images: blob or fs?

我必须存储用户的个人资料图片 (100px * 100px) 存储它的最佳方式是什么?数据库或系统文件?哪个更好、更快、更安全……?

【问题讨论】:

  • @Yassir,认真的人。搜索。我在几秒钟内找到了 6 个重复项。我知道还有更多。
  • 哦,对不起,当我输入问题时它们没有出现,我的错,它不会再发生了
  • “作为垃圾邮件关闭”?!?我可以理解为重复关闭,但为什么是垃圾邮件?
  • 是的,在我看来也不是垃圾邮件。
  • 好吧,亚西尔本人投票决定关闭。所以也许他点击错了。

标签: .net sql database


【解决方案1】:

SQL Server 2008 提供best of both worlds

【讨论】:

  • 这是一个信息链接。谢谢安东。 :)
  • 这就是我的答案。我正在寻找一个已经实现的文件存储库,它存储在文件系统上,但通过数据库进行管理。
【解决方案2】:

始终将图像、音乐文件等存储在磁盘上的系统文件中,然后将它们的 url:s 存储到数据库中。这样就可以了

1) 更快

2) 更容易配置安全设置

3) 在我能想象到的任何方面都更好

【讨论】:

  • 但是我备份数据不会有问题吗?
  • 不——正如数据库有备份解决方案一样,系统文件也有备份解决方案。当然,根据您的应用程序规模,像 James Avery 建议的第三方服务可能是您正在寻找的。但除非您要使用大规模图像,否则我肯定会推荐系统文件。
  • @TomasAschan 如何从文件系统中检索数据?
  • @user7098526:您可以使用例如从文件系统中读取它System.IO.File 中的 API。然而,这个答案是从 2009 年开始的——从那时起,情况发生了很多的变化。今天,我建议将任何类型的文件托管在 AWS S3 或 Azure Blob 存储中,而不是自己滚动。
  • 谢谢托马斯。你能推荐一些关于这方面的文章吗?
【解决方案3】:

我将提出第三种选择,即 Amazon S3 或 Mosso Cloud Files 等第三方平台。两者都提供可用于上传文件的 API,并且都提供 CDN 功能,因此文件加载速度比从服务器或从数据库中提取的速度更快。

这是一个不错的选择,因为它是两全其美的选择。将图像存储在数据库中的缺点是它会给您的应用程序和数据库服务器(定位文件并拉取文件)带来额外的压力,并且还会导致数据库的大小增加,这可能意味着您将需要更早的硬件。

将它们存储在文件系统中的不利之处在于,您现在遇到了缩放问题,就像您想添加额外的 Web 服务器一样,它们每个都需要图像的副本,或者您需要为这些图像创建专用服务器.此外,文件系统访问可能是未来需要担心的瓶颈。

【讨论】:

    【解决方案4】:

    数据库使备份和恢复更容易,并且它比文件系统存储更适合小图像。微软曾就此主题发表过一篇研究论文:To BLOB or Not To BLOB

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 2014-05-04
      • 2012-06-26
      • 2014-02-11
      • 2011-05-31
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      相关资源
      最近更新 更多