Database 在数据库中存储blob是一个好主意吗?

Database 在数据库中存储blob是一个好主意吗?,database,excel,sql-server-2008,blob,Database,Excel,Sql Server 2008,Blob,一段时间以来,我一直致力于将数据从臃肿的Excel工作簿插入SQL数据库。我的团队建议保留.xls的备份,他们想知道将Excel工作簿放在数据库中是否是一个好主意,以便将我们项目中的所有相关数据放在一起 我知道一些数据库支持插入二进制文件,但显然这不是DB系统最初的预期用途,因此我认为这是一个坏主意。我的建议是将工作簿的URL放在数据库中,并将工作簿保存在我们内部网的安全位置 将blob放入数据库的优点(如果有的话,除了将生产数据和备份放在同一个位置之外)和缺点是什么 编辑:只是想进一步澄清一下

一段时间以来,我一直致力于将数据从臃肿的Excel工作簿插入SQL数据库。我的团队建议保留.xls的备份,他们想知道将Excel工作簿放在数据库中是否是一个好主意,以便将我们项目中的所有相关数据放在一起

我知道一些数据库支持插入二进制文件,但显然这不是DB系统最初的预期用途,因此我认为这是一个坏主意。我的建议是将工作簿的URL放在数据库中,并将工作簿保存在我们内部网的安全位置

将blob放入数据库的优点(如果有的话,除了将生产数据和备份放在同一个位置之外)和缺点是什么

编辑:只是想进一步澄清一下,虽然我给出了一个具体的场景,但我打算这个问题主要是关于一般的blob。但是,无论我能从您的回复中收集到什么,在我的具体情况下都会对我有所帮助,我当然非常感激。:)

谢谢,
-罗伯特


另外,对于那些不知道的人来说,BLOB是“二进制大对象”的backcronym

许多CMS软件包(如Sharepoint)都将其存储为BLOB

快速总结。我没有个人意见,因为我从来没有在数据库中设计或开发过非常大的blob(比如电子表格)。我储存了图像和其他小东西

在数据库中: 优点: 假设其他数据以及BLOB:

  • 都在一个地方
  • 备份/恢复是一致的
缺点:

  • 数据库膨胀
  • 演出
数据库外 优点:

  • 没有数据库膨胀
  • 本地存储
缺点:

  • 备份/恢复更复杂
  • 断链风险

通常,如果有其他成本更低的存储选项,我会避免在数据库中放置blob。当然,在数据库中存储blob是有充分理由的,但我倾向于谨慎行事,将FS用于文件存储,将数据库用于数据结构


由于您使用的是SQL 2008,您可能还对数据类型感兴趣。在我看来,如果需要打开Excel电子表格,如果它是一个blob,那么打开它会变得更加困难。另一方面,您不希望在不更改数据的情况下更改备份电子表格,因此在您的情况下,这可能是一个优势。您还可以考虑要存储的电子表格的多少修订。我们经常被要求回顾一年或一年以上的客户的原始输入数据(当您收到每日文件时,这真的很有趣),以找到问题的根源(或者至少证明是他们而不是我们!)。如果需要查看不同版本的数据,则blob需要位于相关表中。这在您的案例中也是一个有利条件,在我看来,您几乎不需要实际访问这些数据。

这是一个很好的问题,但在这里已经被问过很多次了。投票以重复方式结束我几乎只能找到关于将特定图像存储为blob的问题;我想问一下一般的斑点。但是,我认为图像Blob的大多数优点/缺点适用于所有Blob。@Josh,请编辑问题并添加复制问题的链接,以便新用户可以轻松找到它们。数据库bloat还不错。BLOB存储在表空间之外,并引用二进制数据。在SQL Server中?对于FILESTREAM,是的,但是“表空间”是一个强制的概念,不是吗?@Kieveli:对于所有支持Blob的DBMS都是这样吗?谢谢FILESTREAM的建议-我会检查一下。