gpt4 book ai didi

sql-server - 使用 SQL Server 作为图像存储

转载 作者:行者123 更新时间:2023-12-02 02:13:38 25 4
gpt4 key购买 nike

SQL Server 2008 是用作电子商务网站图像存储的好选择吗?它将用于存储各种尺寸和角度的产品图像。 Web 服务器将输出这些图像,并通过集群 ID 读取表。图像总大小约为 10 GB,但需要缩放。我发现使用文件系统有很多好处,但我担心没有 O(1) 查找的 SQL Server 并不是最好的解决方案,因为该站点有大量流量。这会成为瓶颈吗?有什么想法,或者其他选择?

最佳答案

10 GB 并不是一个巨大的数据量,因此您可能可以使用数据库来存储它并且没有大问题,但是当然,使用文件系统是最好的性能明智的做法,并且安全管理明智的做法是最好使用数据库(备份和一致性)。

令人高兴的是,Sql Server 2008 允许您鱼与熊掌兼得,它具有:

The FILESTREAM Attribute

在 SQL Server 2008 中,您可以将 FILESTREAM 属性应用于 varbinary 列,然后 SQL Server 将该列的数据存储在本地 NTFS 文件系统上。将数据存储在文件系统上有两个主要好处:

  • 性能与文件系统的流性能相匹配。
  • BLOB 大小仅受文件系统卷大小的限制。

但是,该列可以像 SQL Server 中的任何其他 BLOB 列一样进行管理,因此管理员可以使用 SQL Server 的可管理性和安全功能将 BLOB 数据管理与关系数据库中的其余数据集成,而无需单独管理文件系统数据。

在 SQL Server 中将数据定义为 FILESTREAM 列还可以确保数据库中的关系数据与物理存储在文件系统上的非结构化数据之间的数据级一致性。 FILESTREAM 列的行为与 BLOB 列完全相同,这意味着备份和恢复等维护操作的完全集成、与 SQL Server 安全模型的完全集成以及全事务支持。

应用程序开发人员可以通过两种编程模型之一使用 FILESTREAM 数据;他们可以使用 Transact-SQL 来访问和操作数据,就像标准 BLOB 列一样,或者可以使用带有 Transact-SQL 事务语义的 Win32 流 API 来确保一致性,这意味着他们可以使用对 FILESTREAM 的标准 Win32 读/写调用BLOB 就像与文件系统上的文件交互一样。

在 SQL Server 2008 中,FILESTREAM 列只能在本地磁盘卷上存储数据,并且 FILESTREAM 列不支持透明加密和表值参数等某些功能。此外,尽管支持日志传送,但您不能在数据库快照或数据库镜像 session 中使用包含 FILESTREAM 列的表。

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

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