如果字段可能非常小或非常大,我在T-SQL中使用哪种数据类型?

时间:2012-08-22 00:53:36

标签: sql-server database tsql types

假设我在一个表中有一个列,它可以保存信息,只需要一个char 'a',或者像一个巨大的二进制块一样大,转换为jpg,png,mp3等等。

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

我想varbinary(max)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.

我怎么知道这个?对不起,如果我愚蠢但看起来太模糊了。

1 个答案:

答案 0 :(得分:0)

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

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

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

网络上也有很多信息,因此在使用时不应该遇到任何问题。

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