如果以下两个表的唯一区别是nvarchar(50)和nvarchar(max),并且每个字段中的字符串从1到50个字符不等,那么它们之间的一般存储和性能差异是什么?这在Server 2005中。
表1
firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)表2
firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)发布于 2013-11-26 22:39:08
如果您保证字符串在1到50个字符之间,那么使用varchar(X)和varchar(最大),跨长度为X的字符串运行相同的查询将运行得更快。此外,您不能在varchar(MAX)字段上创建索引。
一旦您的行的值长度超过8000字符,那么还需要考虑其他性能问题(行基本上被视为文本而不是varchar(n))。尽管这与比较不太相关,因为长度超过8000的字符串没有varchar(N)选项。
发布于 2013-11-26 22:48:31
首先,您将无法在(最大)长度列上创建索引。因此,如果要存储可搜索的数据,即,如果这些列是WHERE谓词的一部分,则可能无法提高查询性能。在这种情况下,您可能需要考虑这些列的FullText搜索和索引。
发布于 2013-11-26 22:38:29
nvarchar最大值用于2GB以下的列。所以从本质上说,它占用了更多的资源。如果你知道你不需要那么多的空间,你最好使用nvarchar(50)。每个字符大约是2个字节,所以2GB是10亿个字符.
https://stackoverflow.com/questions/20229441
复制相似问题