mysql中char和varchar的区别

mysql中char和varchar的区别

字符串是mysql中最长用的数据类型了。
varchar数据的特点:
长度可变,性能差一点。长度是64k。varchar需要额外的一到两个字节来存放varchar中数据的长度。如果长度大于255的话就需要使用两位。在utf-8下一个中文字符占用3个字节,在gbk下面占用的长度是2个字节。

在4.01之前版本中 varchar(12)表示12个字节,相对的在utf编码下只能存放4个中文,以后的版本中存放了12个字符,如果存放了12个汉字,长度就是36.
char_length(column)表示字符长度。

length(columnName)表示字节长度。

varchar最长能存放65535个字节,这个也是mysql中行的最长长度,相对的varchar并不能存放65553个字节长度的信息。

char类型,定义了长度会给分配固定长度。如果长度不够定义的长度,就会使用空格给填充。
由于长度是规则的,不需要去遍历空间的长度,所以性能就会快很多。

如果在数据库设计的过程中,大多数的数据的长度,例如邮政编码手机号码身份证号等数据,长度固定在,就可以使用char类型的,这样能够提高系统的性能。

第二点是 varchar的长度也是不能够随便设置的,在硬盘上长度的存放方式是存放了实际长度。但是在内存中进行缓存,批量插入之前的时候使用的内存空间的长度是按照定义的内存长度来分配的。就是 如果varchar(200),其中实际存放的数据长度是100,最终存放到硬盘的数据是100.但是在内存中缓存数据的长度是200.

你可能感兴趣的:(碎碎念念)