char(N)是定长的,如果存储的字符不到N个,就用空格来填充
varchar(N),是变长的,不到N位,不用空格填充.

解决方案 »

  1.   

    char的效率要高很多
    一般如果你要存储的数据基本上一样长的话,尽量使用CHAR
      

  2.   

    char(N)是定长的,如果存储的字符不到N个,就用空格来填充.
    varchar(N),是变长的,他的长度为数据的实际存储长度,不会浪费磁盘空间,但他的长度要设的足够长,否则当实际的数据长度超过他的定义长度时,那么此数据将不会被完整的存储到数据库.
    测试:
    declare @stra varchar(10)
    declare @strb varchar(2)
    select @stra='aaaaaaa',@strb='aaaaaaa'
    select @stra,@strb
    结果:
    aaaaaaa aa
      

  3.   

    varchar(10)的效率高,因为在执行数据的查询时,磁头读取磁盘时不会读取到空白区(如果是char,那么就会有空余空间)。而且varchar()可以提供数据长度的兼容性。
      

  4.   

    从存储效率、检索效率上来说CHAR比较好!
    但是VARCHAR比较灵活啊,不会浪费不必要的空间!
      

  5.   

    varchar(20)和varchar(8000)除了最大字符数不同之外,在存储空间、效率上有什么区别?
      

  6.   

    在存储空间上,VARCHAR要比CHAR灵活,同时能够节约空间。在效率上,char要比varchar快