我正在存储名字和姓氏,每个名字最多包含30个字符。varchar和nvarchar哪个更好。
我读到过,与varchar相比,nvarchar占用了两倍的空间,而且nvarchar用于国际化。
那么你建议我应该使用什么呢:nvarchar还是varchar?
另外,请让我知道这两个的表现。两者的性能是相同还是不同。因为空间不是太大的问题。问题在于性能。
发布于 2009-08-13 11:19:10
基本上,nvarchar意味着你可以处理很多字母表,而不仅仅是普通的英语。从技术上讲,这意味着支持unicode,而不仅仅是ANSI。这意味着两倍宽的字符或大约两倍的空格。如今,磁盘空间非常便宜,您可以从一开始就使用nvarchar,而不是经历在产品生命周期中必须进行更改的痛苦。
如果你确定你只需要支持一种语言,你可以坚持使用varchar,否则我会选择nvarchar。
这在here之前就已经在SO上讨论过了。
编辑:按照注释中的说明,将ascii更改为ANSI。
发布于 2009-08-13 11:13:08
首先,为了澄清,nvarchar存储unicode数据,而varchar存储ANSI (8位)数据。它们的功能相同,但nvarchar占用了两倍的空间。
通常,我更喜欢使用varchar数据类型存储用户名,除非这些名称的字符超出了varchar可以存储的字符边界。
它还依赖于数据库排序规则。例如,如果您的数据库排序规则为LATIN_CS_AS,您将无法在varchar字段中存储俄语字符。但是,如果您使用的是本地应用程序,则应将数据库排序规则设置为俄语。这将允许您在varchar字段中输入俄语字符,从而节省一些空间。
但是,现在,大多数正在开发的应用程序都是国际化的,所以您必须自己决定哪些用户将注册,并根据这些决定数据类型。
发布于 2009-08-13 11:13:39
我认为nvarchar是
的两倍。
是。
nvarchar用于国际化。
是。
你建议我应该使用
还是varchar?
这取决于应用程序。
https://stackoverflow.com/questions/1271313
复制相似问题