一尘不染

nvarchar(50)与nvarchar(max)的含义

sql

如果下面两个表的唯一区别是nvarchar(50)vs,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)

阅读 293

收藏
2021-03-10

共1个答案

一尘不染

如果保证字符串长度在1到50个字符之间,则使用varchar(X)与varchar(MAX)可以在最大长度为X的字符串上运行相同的查询。此外,您不能在varchar(MAX)字段上创建索引。

一旦您的行的长度值超过8000个字符,就需要解决其他性能问题(这些行基本上被视为TEXT而不是varchar(n))。尽管作为比较,这并不十分相关,因为对于长度超过8000的字符串,没有varchar(N)选项。

2021-03-10