保存图像的URL或保存图像文件中的SQL数据库?(Save image url or save im

2019-07-30 15:49发布

我们可以保存的图像与2路

  1. 上传图片的服务器和保存图像的URL数据库中。
  2. 直接保存图像到数据库

哪一个更好?

Answer 1:

有微软研究院一个很好的纸叫成团块或不BLOB 。

他们有大量的性能测试和分析后得出的结论是这样的:

  • 如果您的图片或文档通常低于256K大小,将它们存储在数据库中VARBINARY列更有效

  • 如果您的图片或文档通常超过1 MB的大小,将它们存储在文件系统更高效(并与SQL Server 2008的FILESTREAM属性,他们仍然事务控制,数据库的一部分下)

  • 在这两个之间,这取决于你的使用有点难以取舍的

如果你决定把你的照片到SQL Server表,我会强烈建议使用一个单独的表,用于存储那些图片 - 不要将员工照片存储在雇员表 - 让他们在一个单独的表。 这样一来,员工表可以保持精简,平均和非常有效的,假设你并不总是需要选择员工照片,也为您的查询的一部分。

对于文件组,检查了文件和文件组体系结构的一个前奏。 基本上,你要么从一开始就创建了大型数据结构的独立文件组数据库,或更高版本添加一个额外的文件组。 让我们把它称为“LARGE_DATA”。

现在,只要你有一个新的表来创建一个需要存储VARCHAR(MAX)VARBINARY(MAX)列,您可以指定大型数据文件组:

 CREATE TABLE dbo.YourTable
     (....... define the fields here ......)
     ON Data                   -- the basic "Data" filegroup for the regular data
     TEXTIMAGE_ON LARGE_DATA   -- the filegroup for large chunks of data

检查出的文件组的MSDN介绍,和玩它!



Answer 2:

像许多的问题,该ansewr是“看情况”。 喜欢的SharePoint系统使用选项2.许多票跟踪系统(我知道肯定Trac的做到这一点),使用选项1。

还想到的任何(潜在的)限制。 当你的体积增大,你要通过你的数据库的大小限制? 这具有特殊意义托管数据库和应用中增加你的数据库的大小比增加存储分配更加昂贵。



Answer 3:

将图像保存到服务器将更好地为一个网站,因为这些都是偶然到您的网站,每个客户品牌相似图片 - 如果你明明设置了下Flickr的答案是不同的:)。 你想建立一个服务器充当文件服务器,共享出/ uploaded_images目录(或任何你的名字),并设置定义上传的图片的基础URL应用程序变量。 为什么好? 成本。 文件服务器是非常便宜的商品硬件。 您可以使用便宜的商品(甚至只是消费级)备份软件备份文件的内容。 如果你的文件服务器嘎嘎叫着,有人失去上传的图片的一天吗? 谁在乎。 他们只是上传一次。 我们的数据库服务器是SSD SAN上运行的企业集群。 我们的备份和反式日志被运送到远程站点通过昂贵的带宽和保持甚至在磁带上的X时期。 我们使用它,我们需要一个RDBMS的ACID(原子性,一致性,隔离性,耐用性)的好处的所有数据。 我们不使用它的公司标志。



Answer 4:

它们存储在数据库中的,除非你有一个很好的理由不这样做。

在文件系统中存储他们是不成熟的优化。

用我们的参照完整性数据库,可以一次完成,综合保障等方面完成全部备份

书SQL反模式调用文件系统中的文件存储的反模式。



文章来源: Save image url or save image file in sql database?