另外想知道如何确定使用哪种字段类型的方法和思路如何判断某种类型是否省资源,和效率比较高像简单的char(20)和varchar(20)这类,或者int(10)和int(8)就不用说了

解决方案 »

  1.   

    使用定长列,不使用可变长列。这条准则对被经常修改,从而容易产生碎片的表来说特别重要。例如,应该选择CHAR 列而不选择VARCHAR 列。所要权衡的是使用定长列时,表所占用的空间更多,但如果能够承担这种空间的耗费,使用定长行将比使用可变长的行处理快得多。 在 较短的列能够满足要求时不要使用较长的列。如果正使用的是定长的CHAR 列,应该使它们尽量短。如果列中所存储的最长值为40 个字符,那么就不要将其定义为CHAR ( 2 5 5 );只要定义为CHAR(40) 即可。如果能够使用MEDIUMINT 而不是BIGINT,表将会更小(磁盘I/O 也较少),其值在计算中也可以处理得更快。 将列定义为NOT NULL。这样处理更快,所需空间更少。而且有时还能简化查询,因为不需要检查是否存在特例NULL。 考虑使用ENUM 列。如果有一个只含有限数目的特定值的列,那么应该考虑将其转换为ENUM 列。ENUM 列的值可以更快地处理,因为它们在内部是以数值表示的。 
      

  2.   

    这个话题比较大了。一般来说确定一个字段类型,需要考虑的地方很多。比如 像简单的char(20)和varchar(20)这类 就需要考虑 空间,时间上的效率平衡。
    基本上,大多情况中差别并不大。
      

  3.   

    http://blog.chinaunix.net/u/29134/showart_1316574.html