一数据表,20列。数据量不大,年增加大概 5 万条记录。
其中有一列,存汉字。这一列有 55% 的数据是 2 个汉字,40% 的数据是 3 个汉字,其余 5% 的数据是 4 个汉字。
请问这一列适合用 nchar(4) 类型还是 nvarchar(4) 类型?各有何优缺点?

解决方案 »

  1.   

    nvarchar(4)吧 比较好 可以节省空间
      

  2.   

    nchar和nvarchar的区别累世char和varchar的区别
      

  3.   

    如果是比较关键的业务字段,用nchar(4)
      

  4.   


      问题续:
    在 SQLServer 关于 nchar 和 nvarchar 的帮助里有一句话:
    “如果列数据项的大小可能相同,请使用 nchar。如果列数据项的大小可能差异很大,请使用 nvarchar。”
    就是这句话让我不知如何选择。我实际的数据似乎介于这两者中间。
      

  5.   


    其中有一列,存汉字。这一列有 55% 的数据是 2 个汉字,40% 的数据是 3 个汉字,其余 5% 的数据是 4 个汉字。充其量两个字符的差异,可以不考虑.用nchar(4),nvarchar(4)差不多.
      

  6.   

    nchar 是用在字符串长度确定时
    其他的用nvarchar
      

  7.   

    请问CSDN管理员及各位C友!为什么CSDN需要我没完没了的登录?只要我点击了通知,私信,好友,然后我每回复一帖系统就要我登录一次,从6.1到今天,至少已经登录了数百次了.
    (前些日子情况稍好些.)实在忍无可忍,只好发帖了质问了.环境: windows2003 + IE6请问:是我系统(设置)的问题,还是CSDN开发人员水平太烂,居然烂到如此地步?另外:发此帖登录三次,内容重写两遍(因为发贴后又要我登录,然后写的内容就无踪影了,只好重写).在此对CSDN这种机制发表自己强烈的愤怒和进行强烈的抗议!如有类似经历者,请指点我该如何操作,谢谢.最后,我居然发不出帖!!!请小F或roy_888帮我发出此帖,谢谢!
      

  8.   

    楼上,很显然,是你的 Cookies 有问题。有没有换个浏览器试试?有没有换台机子试试?还在用 IE6 么?
    另外,楼上就不能开个贴问么?非要这么到处乱X么?是你自己遇到这种情况还是很多人?如果是很多人,你可以“在此对CSDN这种机制发表自己强烈的愤怒和进行强烈的抗议!”,但如果只是你自己,那只能是RP问题了。看你等级挺高的,不应该做出这样的事!!!
      

  9.   

    建议用nvarchar因为它的字符是可变的;比如说nvarchar(4)和nchar(4),如果只有两个字符,nvarchar会自动保存两个字符,而nchar仍然会保持4个,所以一般在字符不确定的情况下都使用nvarchar,在确定的情况下才用nchar
      

  10.   

    nchar是固定的,当字符串长度不够时,系统会自动填充其他的字符;而nvarchar是字符串多长就占多少长度
      

  11.   

    因为你的数据量不是很大,用nvarchar来查询效率也不是很低的,如果用nchar的话,虽然效率上是好一点点,但是会占用空间的。在数据量不大的情况下,两者的效率差别不大!你一年才5W条!
      

  12.   

    nvarchar(4) 好些 节省空间的 
    插入多少就多少 不会占着茅坑不拉死