【问题标题】:What is the most flexible data type in SQL Server 2008 R2?SQL Server 2008 R2 中最灵活的数据类型是什么?
【发布时间】:2012-01-15 01:23:17
【问题描述】:

我正在为我的应用程序试验一种可能的数据结构,我需要在我的一个 SQL Server 数据表中提供一个列来保存各种大小不可预测的数据。

从字面上看,这可能意味着一串文本,或 Base64 编码的视频剪辑以及介于两者之间的所有内容。

我意识到即时响应将是我应该为不同类型提供不同的表 - 我不反对 - 但请在此处幽默。

varchar(MAX)?  
nvarchar(MAX)?

我不是 DBA,所以我不知道哪种类型能够以最低的存储成本为我提供最大的灵活性。

【问题讨论】:

  • 文本数据和 base-64 编码的视频剪辑都是字符串,只是长度不同。是否要存储其他类型的数据(以原生格式)?
  • 目前,我无法想象我会需要存储除极长文本字符串之外的任何内容。任何媒体都可以用 Base64 格式编码,对吗?您是否认为我可能需要存储字节?感谢您的评论。
  • 对于存储 Base64 编码的字符串 VARCHAR(MAX) 应该这样做。查看stackoverflow.com/questions/2397624/…

标签: sql-server database sql-server-2008


【解决方案1】:

VARBINARY(MAX)?

原则上,试图将多种不同的数据类型强制转换为单一类型是一个坏主意。每种类型的不同桌子可能会更好地为您服务。但是,如果您永远不会搜索该字段,您应该可以使用二进制字段做任何事情...

【讨论】:

  • 谢谢德姆斯!我现在正在阅读这个数据类型(在选择这个作为获胜答案之前,为了其他 SO 用户要谨慎)。不知不觉中,您知道这种类型与其他 MAX 类型相比需要多少数据吗?或者因为存储如此便宜,这些天甚至有关系吗?我知道我们不应该征求意见,但你的意见真的很有帮助。谢谢。
  • 对象大小 + 2 个字节,我想。不,我不会担心空间使用的差异。选择正确的类型,不要妥协以进行几乎不需要的几乎察觉不到的优化。
  • 好建议!感谢所有发布的人,但这个答案似乎是赢家。再次感谢德姆斯!!
【解决方案2】:

考虑使用xml 数据类型。它将允许您存储、查询和索引任意 XML 文档。

【讨论】:

  • 可以让二进制对象存储在 XML 中吗?
  • 谢谢约翰!我正在按时间顺序检查答案。我不会想到 XML。有趣的。 . .
  • @Dems:是的,您可以在 XML 中将二进制存储为 base64
猜你喜欢
  • 2015-12-28
  • 1970-01-01
  • 2014-10-01
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-09
  • 2011-06-26
相关资源
最近更新 更多