区别:
一、所占空间
char的长度指定后不可变,且是立即占用指定的空间;
varchar的长度可变,占用空间与存入数据大小有关。
显而易见,varchar比char节省空间。
举例:
定义 char(10) 和 varchar(10),存入数据 'hello',
此时,char所占的空间为10个字符(后面都是空格),varchar则只占5。
另外,MySQL中 char和varchar 的存储方式都是对英文字符(ASCII)占用1个字节,汉子也是1个字节
二、读取速度
char的存取存取速度比varchar快一些,因为其长度固定,方便程序查找和存储;
如果想要获得速度,就需要牺牲一定空间,这也就是我们在数据库设计上常说的【以空间换时间效率】
总结
在生产开发中,如何合理地选择char和varchar,就需要我们自己去平衡。