日期:2014-05-16 浏览次数:20530 次
CHAR是固定长度,处理速度要比VARCHAR的要快,但是要浪费存储空间。随着MYSQL版本的不断升级,VARCHAR的处理速度也在提高,不同引擎对CHAR和VARCHAR的使用原则不同:
?
MyISAM:建议使用固定长度的数据列代替可变长度的
?
MEMORY:目前都使用固定长度进行存储,因此无论使用CHAR还是VARCHAR都没有关系,两者都做为CHAR类型进行处理。
?
InnoDB:建议使用VARCHAR类型,对于InnoDB数据表,内部的行存储格式没有分固定长度列和可变长度列,所有数据都使用指向数据列的头指针,因此在本质上使用CHAR不一定比VARCHAR性能好,主要的性能是数据行使用的存储总量,因此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘IO是比较好的。