char 效率确实高一些!char 是 固定长度,varchar 是可变长度,查找时候,char效率可能要高一些!!

解决方案 »

  1.   

    "如果是使用like进行查询的话,简单的使用index是不行的,但是全文索引,耗空间。 like 'a%' 使用索引 like '%a' 不使用索引用 like '%a%' 查询时,查询耗时和字段值总长度成正比,所以不能用CHAR类型,而是VARCHAR"--摘的
      

  2.   

    以前就发过这样的贴啊!下面是引用邹老大的:效率和存储空间本来就是矛盾的, 如果你从这个角度来理解我说的, 那就是矛盾的.另外, 在存储空间上,  javanow(想我生命的意义) 是正确的. 用sp_spaceused就可以简单地看到存储空间, 可以说明char/varchar在存储处理上的差别.示例:USE tempdb
    GOCREATE TABLE t1(a char(8000))
    CREATE TABLE t2(a varchar(8000))
    GOINSERT t1 SELECT TOP 100 '' FROM syscolumns
    INSERT t2 SELECT TOP 100 '' FROM syscolumns
    GOEXEC sp_spaceused 't1'
    EXEC sp_spaceused 't2'
    GODROP TABLE t1,t2
    -- 结果, 同样的100条记录, t1表的data空间是800KB, 则t2是8KB
    -- SQL Server是如何存储数据的, 一看就明白.而在检索上, 就算不考虑索引, char是定长的, 移动到下一条记录, 只需要做固定长度的指针偏移即可. varchar则必须根据当前记录的长度算出下一个数据指针的偏移.
      

  3.   

    简单一点就是
    如果长度变化范围不大,char是个好主意。
    否则绝对是varchar。
    --------------------------
    http://chinadba.cn
    深圳骄子数据库服务网
    最具实战经验的数据库优化、管理、设计、培训。