首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nvarchar (50) vs nvarchar (max)的含义

nvarchar (50) vs nvarchar (max)的含义
EN

Stack Overflow用户
提问于 2013-11-26 22:34:56
回答 3查看 27.5K关注 0票数 25

如果以下两个表的唯一区别是nvarchar(50)nvarchar(max),并且每个字段中的字符串从1到50个字符不等,那么它们之间的一般存储和性能差异是什么?这在Server 2005中。

表1

代码语言:javascript
复制
firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)

表2

代码语言:javascript
复制
firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-26 22:39:08

如果您保证字符串在1到50个字符之间,那么使用varchar(X)和varchar(最大),跨长度为X的字符串运行相同的查询将运行得更快。此外,您不能在varchar(MAX)字段上创建索引。

一旦您的行的值长度超过8000字符,那么还需要考虑其他性能问题(行基本上被视为文本而不是varchar(n))。尽管这与比较不太相关,因为长度超过8000的字符串没有varchar(N)选项。

票数 31
EN

Stack Overflow用户

发布于 2013-11-26 22:48:31

首先,您将无法在(最大)长度列上创建索引。因此,如果要存储可搜索的数据,即,如果这些列是WHERE谓词的一部分,则可能无法提高查询性能。在这种情况下,您可能需要考虑这些列的FullText搜索和索引。

票数 8
EN

Stack Overflow用户

发布于 2013-11-26 22:38:29

nvarchar最大值用于2GB以下的列。所以从本质上说,它占用了更多的资源。如果你知道你不需要那么多的空间,你最好使用nvarchar(50)。每个字符大约是2个字节,所以2GB是10亿个字符.

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20229441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档