存储图像的最佳方法是什么(考虑到空间和时间效率)。
假设这些图片用作个人资料图片,那么它们将经常从数据库中获取。
我有一些想法:
谢谢!
答案 0 :(得分:1)
我认为将图像存储在DB中是一个非常糟糕的主意。您只需要在数据库中存储图像链接(表的列:user_id,profile_image_url),并且图像文件应该存储在任何分布式文件系统中(例如Amazon S3)
答案 1 :(得分:0)
SQL Server支持数据库内部的Blob存储,并且还可以与Windows集成以在文件系统中存储Blob(提供通过TSQL和Windows API的访问)。
这些功能分别称为Filestream和FileTables
这些功能的目的是为存储Blob数据提供“两全其美”的功能。 SQL Server管理所有应用程序数据的一致性,可用性和可恢复性,但是大文件存储在数据库外部。
但是这里的重点是,由于SQL Server支持将blob数据存储在数据库文件中或文件系统中,因此Microsoft进行了大量测试以帮助客户确定哪个是更好的选择。
根据测试得出的经验法则是,在大约1MB的数据库内存储性能比文件系统更好,而在此之上,文件系统更好。基本上,外部Blob具有较低的每GB成本和更好的流传输性能,但在打开,创建,删除等操作时具有较高的按文件访问成本。盈亏平衡点约为1MB。
例如参见Filestream Storage上的本白皮书