[英]Implications of nvarchar (50) vs nvarchar (max)
如果下面两个表的唯一区别是nvarchar(50)
与nvarchar(max)
并且每个字段中的字符串范围是1到50个字符,那么下面两个表之间的一般存储和性能差异是什么? 这是在SQL Server 2005中。
表格1
firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)
表2
firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)
如果您保证有1到50个字符之间的字符串,那么使用varchar(X)与varchar(MAX)运行的相同查询将在更长的X字符串中运行。 此外,您无法在varchar(MAX)字段上创建索引。
一旦您的行的长度超过8000个字符,那么还有其他性能考虑因素(这些行基本上被视为TEXT而不是varchar(n))。 虽然这与比较并不十分相关,因为对于长度超过8000的字符串,没有varchar(N)选项。
首先,您将无法在(最大)长度列上创建索引。 因此,如果要存储可搜索的数据,即,如果这些列将成为WHERE谓词的一部分,则可能无法提高查询性能。 在这种情况下,您可能需要考虑FullText Search和这些列的索引。
nvarchar max适用于最大2GB的列。 所以基本上它占用了更多的资源。 如果您知道不需要那么多空间,最好使用nvarchar(50)。 每个字符大约2个字节,所以2 GB,10亿个字符......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.