gpt4 book ai didi

sql-server - 在 SQL Server 中存储图像?

转载 作者:行者123 更新时间:2023-12-01 16:32:30 24 4
gpt4 key购买 nike

我制作了一个小型演示网站,并在其上将图像存储在 sql 服务器上的图像列中。我有几个问题...

  • 这是一个坏主意吗?

  • 当我的网站增长时,它会影响性能吗?

另一种方法是将图像存储在光盘上,并仅将图像的引用存储在数据库中。这想必是很多人都曾遇到过的共同困境。我很乐意接受一些建议,如果可以的话,我真的很乐意少犯一些错误。

最佳答案

微软研究院有一篇非常好的论文,名为 To Blob or Not To Blob .

他们经过大量的性能测试和分析后的结论是:

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

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

  • 在这两者之间,根据您的使用情况,这有点难以抉择

如果您决定将图片放入 SQL Server 表中,我强烈建议使用单独的表来存储这些图片 - 不要将员工照片存储在员工表中 - 将它们保存在单独的表中。这样,假设您并不总是需要选择员工照片作为查询的一部分,那么 Employee 表就可以保持精简、简洁且非常高效。

对于文件组,请查看 Files and Filegroup Architecture进行介绍。基本上,您可以从一开始就为大型数据结构创建具有单独文件组的数据库,或者稍后添加其他文件组。我们将其称为“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 关于文件组的介绍,并尝试一下!

关于sql-server - 在 SQL Server 中存储图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5613898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com