在DB与文件夹结构中存储图像

bdh*_*har 6 database database-design image blobstorage

我知道可以将数据库中的图像存储为二进制大对象.但我曾经在一些论坛Web应用程序中看到它们作为平面文件存储在Web服务器机器中并在需要时检索.

两种方法的优点和缺点是什么?

何时采取哪种方法?

Run*_*une 11

像往常一样,这取决于.您需要考虑图像的使用模式以及DBMS提供的功能.

将图像存储在数据库中:

PROS

  • 如果图像与数据库中的实体(例如,用户)相关联,则数据库可以负责维护该关系.另一方面,如果图像与数据库中的任何内容都没有关联,您可能不希望将它们存储在数据库中.
  • 如果您的数据库支持它,您将能够处理事务中的文件(我相信MS SQL 2008支持这一点,我不知道其他人是否支持).
  • 如果您需要存储每个映像的多个版本(例如,因为它们随时间而变化),则在数据库中可能比在文件系统上更容易.

缺点

  • 你将在数据库上施加很大的压力.
  • 备份数据库可能需要很长时间.

将图像存储在磁盘上:

PROS

  • 备份是微不足道的
  • 检查图像等只需要一个文件浏览器,不需要数据库客户端

缺点

  • 保持数据库的图像集视图和磁盘上的实际内容同步可能并非易事,具体取决于您将对图像执行的操作.

当然,如果您存储大量图像,所有这些问题尤其有效.