将图像保存在BLOB类型的数据库中是否合适?
或者只保存路径并将图像复制到特定目录中?
哪种方式是最好的(我的意思是数据库和应用程序的良好性能)以及为什么?
答案 0 :(得分:0)
您有什么要求?
在绝大多数情况下,保存路径会更好,这仅仅是因为文件的大小与其余数据相比(由于图像包含而使GB膨胀)。考虑添加间接,例如。将路径保存为名称和对存储资源的引用(例如,引用storage_id
表中的行的storages
)和附加到“存储”的路径。这样您就可以轻松移动文件(复制所有文件,然后更新存储路径,而不是更新1MM个别路径)。
但是,如果您的要求包括一致的备份/恢复和/或灾难恢复,通常最好将图像存储在数据库中。不容易,也不方便,但只是必需。每个DB都有自己的方法来处理这个问题,例如。在SQL Server中,您将使用FILESTREAM类型,允许通过文件访问API进行远程访问。有关示例,请参阅FILESTREAM MVC: Download and Upload images from SQL Server。
此外,还有一段不合时宜的关于这个主题的文章:To BLOB or Not to BLOB。