2010-09-29 154 views
3

可能重复:
Storing Images in DB - Yea or Nay?
Saving images in database mysql将图片存储在数据库中?

我有一个网站,用户可以上传个人资料图片和相册。现在我开始想知道是否将图片保存到数据库中,或者文件操作仍然可以,因为它变得更大? 我在像社交网络这样的巨大规模中思考,存储在文件中的数亿张图片对我来说似乎很疯狂,所以我确定它必须以其他方式存储?

任何建议或指导。 谢谢

+1

也可以考虑阅读这个其他粉丝最喜欢[储蓄图像在数据库中的MySQL](http://stackoverflow.com/questions/2753193/saving-images-in-database-mysql) – 2010-09-29 03:57:41

回答

4

这两种方法都有优点和缺点。数据库对于存储大量数据块并不太好。这样做往往会耗尽数据库上的大量资源(CPU,内存,硬盘驱动器空间和数据库与Web服务器之间的网络带宽)。它会使数据库备份大得多。

然而,在一个单独的文件系统上存储图像的大问题(在Web服务器上说的)是,它是更加难以将其与在数据库中的数据同步。如果用户在一个数据库备份是怎么回事,谁知道你会到底是什么状态了变化的照片。如果你需要从备份恢复数据库,这将是非常难以同步上涨的图像。如果您不小心,还可能会在浪费磁盘空间的环境中挂起孤立的图像。

恕我直言,这是太多精力来维护数据库和文件系统之间的数据的完整性,所以我将它们存储在数据库中扔些钱的硬件,以便它可以跟上。

8

将它们存储在您的网络服务器上,并在您的数据库中的URL将是一个更好的主意。它也使修改图像变得更容易。

+0

是 - 如果不是Web服务器至少在静态CDN上。 – RPM1984 2010-09-29 03:59:08

1

保存你的照片在你的网络服务器,因为你要开发社交网站,所以这将是一个巨大的数据库负担。因为有时你必须处理++ MB的图片。因此只在BD中存储链接。

从文件你可以很容易地玩图片,甚至可以轻松地迁移它们,而不会对数据库产生任何影响。