- 长度
char 固定长度的类型varchar 可变长度的类型
char(M):每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足 varchar(M):每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)
CHAR(10),表示你存储的字符将占10个字节(包括7个空字符), VARCHAR(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储 CHAR的效率比VARCHAR的效率稍高。存储
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节建意
myisam 存储引擎 建议使用固定长度,数据列代替可变长度的数据列。 memory 存储引擎 目前都使用固定数据行存储,因此无论使用char varchar列都没关系, innodb 存储引擎 建意使用varchar 类型版本
varchar mysql5之前0~255 mysql5之后0~65535