如题。

解决方案 »

  1.   

    Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
    char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
    Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"
    而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,
    就是把它填满为100个字节)。由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格
    去掉! 资料引用:http://www.knowsky.com/1997.html
      

  2.   

    不要纠结多少字节,其实 varchar 根本不能正确显示中文的,请用 NVarchar
      

  3.   


    悲催了...
    哎...I'm sorry.
      

  4.   

    为什么用varchar(5000)? 既然是文本型,就不好控制多少,存取也不会太频繁!干脆就用varchar(max),如果有汉字就nvarchar(max),但是需要注意的是nvarchar效率,如果100万表,用like查的话会很慢。
    如果非得强求速度,那就得用ntext类型,但Ntext却不能用like查出来,必须用到全文索引!
      

  5.   

    nvarchar 如果是一个英文也照样占了2个字节. 
    如果都在国内用,尽量用varchar