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