varchar
1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表)
2、使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间
3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。
4、5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉
5、最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了
char
1、使用固定长度
2、保存的时候会去掉字符串末尾的空格
3、适合保存MD5后的哈希值或经常改变的值,因为固定的行不容易产生碎片
1、使用比固定长度类型(char)占用更少存储空间(除了使用ROW_FORMAT=FIXED创建的MyISAM表)
2、使用额外的1-2字节来存储值长度,列长度<=255使用1字节保存,其它情况使用2字节保存。例如varchar(10)会占用11字节存储空间,varchar(500)会占用502字节存储空间
3、节约空间,所以性能会有帮助。在更新的时候会产生额外的工作。
4、5.0以上版本,取值或设置值都会保存字符串末尾的空格,4.1之前的版本都会把字符串末尾的空格删除掉
5、最大长度远大于平均长度,很少发生更新的时候适合使用varchar,因为碎片更少了
char
1、使用固定长度
2、保存的时候会去掉字符串末尾的空格
3、适合保存MD5后的哈希值或经常改变的值,因为固定的行不容易产生碎片
char去掉字符串末尾的空格示例:
varchar去掉字符串末尾的空格示例: