0

假设我在表中有一个列,该列可能包含短至单个字符'a'或大至巨大二进制块的信息,可转换为 jpg、png、mp3 等。

我应该为此使用哪种数据类型?

我想varbinary(max)or varchar(max),但是如果我只存储一个字符或一个短字符串,它会占用未使用的空间吗?

当字段的数据类型可能具有可变长度时,如何存储数据?

根据这个 qa,https: //dba.stackexchange.com/questions/1767/how-do-too-long-fields-varchar-nvarchar-impact-performance-and-disk-usage-ms,没关系,除了这个:

记忆

If the client application allocates memory using the maximum size, the application would allocate significantly more memory than is necessary. Special considerations would have to be done to avoid this.

我怎么知道这个?对不起,如果我是愚蠢的,但它似乎太模糊了。

4

1 回答 1

0

如果我是你,我会做的是使用 File-Stream 启用数据库。

您可以在此处了解更多信息:

http://technet.microsoft.com/en-us/library/bb933993(v=sql.105).aspx

网上也有很多信息,所以你在使用它时应该不会遇到任何问题。

通常,您将拥有一个包含许多列的表,其中一个列将以二进制格式或 BLOB(二进制大对象)存储信息。好消息是它可以存储的信息仅取决于您的硬盘驱动器空间,因为它存储在您的驱动器中。在其他列中,您可以有一个类型字段 - 对于 eaxmaple mp3/gpef/avi/etc,它将帮助您的应用程序将此 BLOB 转换为其原始类型。

于 2012-09-05T08:34:32.570 回答