如果下面两个表的唯一区别是nvarchar(50)vs,nvarchar(max)并且每个字段中的字符串范围是1到50个字符,那么它们在存储和性能方面的一般区别是什么?这是在SQL Server 2005中。
nvarchar(50)
nvarchar(max)
表格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)选项。