有张订单表,里面有个编号是唯一的而且是经常查询的,不过它的内容可以有中英文数字和-,所以我设置成VARCHAR好还是CHAR好,对这个编号需要创建索引吗?

解决方案 »

  1.   

    varchar节省空间  char快
    一般用varchar
      

  2.   

    show create table tbname;看下你的表上是否已经有了索引
      

  3.   

    我的表还没有建立,有个主键ID,另外这个编号也是唯一的,我想设置成CHAR类型,这种情况需要建立索引吗,内容暂时还不确定 大概是不超过30
      

  4.   

    在myisam是这样的,但是如果在innodb里面还是建议用varchar,对于InnoDB表,因为它的数据行内部存储格式对固定长度的数据行和可变长度的数据行不加区分(所有数据行共用一个表头部分,这个标头部分存放着指向各有关数据列的指针),所以使用char类型不见得会比使用varchar类型好。事实上,因为char类型通常要比varchar类型占用更多的空间,所以从减少空间占用量和减少磁盘i/o的角度,使用varchar类型反而更有利.