如何区别char与varchar?
1、varchar与char两个数据类型用于存储字符串长度小于255的字符,MySQL5.0之前是varchar支持最大255。比如向一个长度为40个字符的字段中输入一个为10个字符的数据。使用varchar取为10个字符;使用char取为40个字符。
2、varchar占用更少的存储空间,拥有额外1-2个字节存储长度(比如:列长度<=255时,varchar(255)会占用256个字节存储空间加1,varchar(256)会占用258个字节存储空间加2),5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉,最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了。
3、char使用固定长度,保存的时候会去掉字符串末尾的空格,适合保存MD5后的哈希值或经常改变的值,因为固定的行不容易产生碎片,处理的速度比varchar快,因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。