将图像存储在数据库中还是系统文件中?

9

完全重复: 用户图片:数据库还是文件系统存储?
完全重复: 将图像存储在数据库中:是还是不是?
完全重复: 我应该将我的图像存储在数据库中还是文件夹中?
完全重复: 你会将二进制数据存储在数据库中还是文件夹中?
完全重复: 为Web应用程序将图片存储为文件还是数据库?
完全重复: 存储少量图像:Blob或FS?

我需要存储用户的个人资料图片(100px * 100px),哪种方式更好?是数据库还是系统文件?哪种更好、更快、更安全...?


@Yassir,认真点。搜一下。我在几秒钟内找到了6个重复项。我知道还有更多。 - mmcdole
抱歉,在我输入问题时它们没有出现,这是我的错误,不会再发生了。 - Hannoun Yassir
“关闭为垃圾邮件”?!我可以理解关闭为重复,但为什么是垃圾邮件? - Bill Karwin
是的,对我来说也不像垃圾邮件。 - Rick Copeland
只是为了记录,我投票关闭作为完全重复...如果关闭投票被关闭者分解。 - Mark Harrison
显示剩余2条评论
4个回答

12

始终将图像、音乐文件等存储在磁盘的系统文件中,然后在数据库中存储其url。这将使它:

1)更快

2)更易于配置安全设置

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


2
但是当我备份数据时,我会遇到问题吗? - Hannoun Yassir
不仅数据库有备份解决方案,系统文件也有备份解决方案。当然,根据您的应用规模,像James Avery提出的第三方服务可能是您需要的。但除非您要处理大量图片,否则我强烈建议使用系统文件备份。 - Tomas Aschan
@TomasAschan 如何从文件系统中检索数据? - user7098526
@user7098526:您可以使用System.IO.File中的API从文件系统中读取它。然而,这个答案是来自2009年 - 自那时以来,情况已经发生了很大变化。今天,我建议将任何类型的文件托管在像AWS S3或Azure Blob Storage这样的服务中,而不是自己开发。 - Tomas Aschan
谢谢Tomas。你能推荐一些关于这方面的文章吗? - user7098526
@user7098526:互联网上已经有很多这样的资源。只需要搜索“入门指南”+你想使用的产品即可 :) - Tomas Aschan

12

那是一个有信息量的链接。谢谢 Anton. :) - Gan
这对我来说是答案。我正在寻找一个已经实现的文件存储库,它存储在文件系统中,但通过数据库进行管理。 - Ben Collins

9
我将提出第三种选择,即使用像Amazon S3或Mosso Cloud Files这样的第三方平台。这两个平台都提供了API,您可以使用它们来上传文件,并且它们都提供CDN功能,因此文件加载速度比从您的服务器或数据库中获取要快。
这是一个不错的选择,因为它集两者之长。将图片存储在数据库中的缺点是它会给您的应用程序和数据库服务器增加额外的压力(定位文件并拉取它),并且它还会导致数据库增大,这意味着您可能需要更早地升级硬件。
将它们存储在文件系统中的缺点是,如果您想要添加其他Web服务器,那么每个服务器都需要拥有图像的副本,或者您需要为这些图像创建专用服务器。另外,文件系统访问可能成为未来需要担心的瓶颈问题。

4

数据库使备份和恢复更加容易,并且对于小型图像,它比文件系统存储更有效。微软曾经在这个主题上发表了一篇研究论文:To BLOB or Not To BLOB


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接