当需要的长度<8000时,TEXT对varchar有什么优势?

时间:2011-08-15 09:39:05

标签: sql-server database text varchar

SQL Server Text type vs. varchar data type

  

根据经验,如果您需要文本值超过200   字符并且不要在此列上使用连接,请使用TEXT。

     

否则使用VARCHAR。

假设我的数据现在是4000个字符,并且我不在此列上使用连接。通过该引用,与使用varchar(4000)相比,使用TEXT / varchar(max)更有利。

为什么这样? (在这种情况下,TEXT / varchar(max)有什么优势超过正常的varchar?)

3 个答案:

答案 0 :(得分:4)

不推荐使用TEXT,改为使用nvarchar(max)varchar(max)varbinary(max)http://msdn.microsoft.com/en-us/library/ms187993.aspx

答案 1 :(得分:2)

我不同意200件事,因为没有解释,除非它与被弃用的"text in row" option

有关
  • 如果您的数据是4000个字符,那么使用char(4000)。这是固定长度
  • 文本已弃用
  • BLOB类型较慢

答案 2 :(得分:0)

在旧版本的SQL(2000及更早版本?)中,最大行长度为8 KB(或8060字节)。如果您将varchar用于许多长文本列,则它们将包含在此长度中,而任何文本列都不会,因此您可以在一行中保留更多文本。

此问题已在更新版本的SQL中得到解决。

This MSDN page包括声明:

  

SQL Server 2005支持启用变量的行溢出存储   在行外推的长度列。只存储一个24字节的根   可变长度列的主记录被推出行;因为   其中,有效行限制高于先前版本   SQL Server。有关更多信息,请参阅“行溢出数据”   SQL Server 2005联机丛书中超过8 KB的主题。