在数据库中保存图像

Saving image in database

用BLOB类型保存图片到数据库好吗?
或者只保存路径并复制特定目录中的图像?

哪种方式最好(我的意思是数据库和应用程序的良好性能),为什么?

你有什么要求?

在绝大多数情况下,保存路径会更好,这仅仅是因为与其余数据相比,文件的绝对大小(由于包含图像,使 DB 增加 GB)。考虑添加一个间接,例如。将路径保存为名称和对存储资源的引用(例如 storage_id 引用 storages 表中的一行)以及附加到 'storage' 的路径。这样就可以方便的移动文件(复制所有文件,然后更新存储路径,而不是更新1MM的个别路径)。

但是,如果您的要求包括一致的 backup/restore and/or 灾难恢复性,通常最好将图像存储在数据库中。既不简单,也不方便,只是需要。每个数据库都有自己的方式来处理这个问题,例如。在 SQL 服务器中,您将使用 FILESTREAM type which allows remote access via file access API. See FILESTREAM MVC: Download and Upload images from SQL Server 作为示例。

此外,关于该主题的一篇过时但 none 不太有趣的论文:To BLOB or Not to BLOB