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

时间:2009-04-19 20:34:22

标签: .net sql database

完全重复: 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)存储它的最佳方式是什么?数据库或系统文件?哪一个更好,更快,更安全......?

4 个答案:

答案 0 :(得分:12)

SQL Server 2008提供best of both worlds

答案 1 :(得分:9)

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

1)更快

2)更容易配置安全设置

3)以任何我能想象的方式更好

答案 2 :(得分:9)

我打算提出第三个选项,像Amazon S3或Mosso Cloud Files这样的第三方派对。两者都提供了可用于上传文件的API,并且都提供了CDN功能,因此文件加载速度会快于服务器或从数据库中提取。

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

将它们存储在文件系统中的缺点是,您现在遇到了扩展问题,就好像您想要添加其他Web服务器一样,每个Web服务器都需要图像副本,或者您需要为这些图像创建专用服务器。此外,文件系统访问可能是未来需要担心的瓶颈。

答案 3 :(得分:4)

数据库使备份和恢复更容易,并且比小图像的文件系统存储更好。微软发表了一篇关于这个主题的研究论文:To BLOB or Not To BLOB