任何人都可以用外行的术语解释一下,这两种数据类型之间有什么区别,以及使用这两种数据类型在数据库中存储文件的优缺点。
如果需要上下文,那么我将创建一个 Web 应用程序,用户可以在其中上传大量不同的数据,例如图像、Excel 文件、.docx 等。
最佳答案
Blob 存储在 varbinary(MAX) 列中,其值存储在数据库数据文件内的数据页中。
使用 FILESTREAM,值作为单独的文件单独存储在文件系统上,每行和值都有一个单独的文件。这些文件由 SQL Server 内部管理,可以使用 T-SQL 进行存储和检索,就像正常的 varbinary(MAX) 值或 with Win32 APIs 一样。 .
还有FileTables ,这是一个在 FILESTREAM 之上具有预定义架构的专用表。 FileTable 提供像 Blob 和 FILESTREAM 一样的 T-SQL 访问,并且可以选择通过 SQL Server 管理的 UNC 路径进行访问,类似于普通的 Windows 共享。通过共享创建/删除文件会从文件表中插入/删除行,反之亦然。
关于sql-server - SQL Server (Transact-SQL) Filestream 和 BLOB 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47739994/