可能是,因为char中可能有空格
例如:char(20) 但是你的字段内容是"ahsd",那么就有16个空格
在设计时,如果你能确定字段的总确长度,就用char
如果不能,就用varchar (n),其中n是字段的最大的长度。

解决方案 »

  1.   

    数据库使用时间长了。数据多了,速度自然就慢了。
    这个跟char应该没有关系的。(你的数据等长的字符串吗?)
    有一说法:char比varchar效率高,^_^跟你想的相反,但是我没有验证过。也未看到类似的文档。
      

  2.   

    因为你没有建索引!!!查询百万条的记录,没有索引是不可想象的!用sp_helpindex <表名> 的结果贴出来,我帮你看看。用char肯定要比varchar快!
      

  3.   

    char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。如果是变长的话,因为要对输入的数据进行处理,那么系统会自己进行一些运算来安排数据存放,由此使用char要不varchar快,但是占用的空间要多一些。