我想知道SQL Server中存储字符串的不同数据类型之间的区别。
例如ntext
,nvarchar(X)
,varchar
,nvarchar(max)
等。
在灵活性,资源使用和性能方面有什么建议?
答案 0 :(得分:0)
N
unicode 的所有字符串类型 - 每个字符2个字节,将存储西里尔字母,亚洲字母,阿拉伯字母,希伯来字母等字符串 - 而不存在字符串的字符串N
不是unicode(只能正确存储西欧/ ASCII字符)
TEXT
和NTEXT
已弃用 - 请勿再使用这些内容 - 请改用(N)VARCHAR(MAX)
- 有关详细信息,请参阅relevant MSDN documentation on that topic
NVARCHAR(X)
是一个“普通”字符串,最大值。 8000字节的数据(4000个Unicode或8000个非Unicode字符) - 存储在SQL Server的常规页面中
NVARCHAR(MAX)
是一种特殊类型,最多2 GB的存储空间(10亿个Unicode字符) - 但它需要特殊的存储处理,需要更多的工作量,比常规字符串执行速度慢一些;在绝对需要时使用
答案 1 :(得分:0)
请参阅下面的链接,了解nvarchar和varchar之间的区别,然后选择最适合您的
答案 2 :(得分:0)
对于普通英文字母,请使用varchar,对于任何其他语言和外来字符,请使用nvarchar。 varchar每个charcater使用1个字节进行存储,nvarchar每个字符使用2个字节。