字符类型

ARCHAR和CHAR是两种最主要的字符串类型。
 
VARCHAR:
varchar类型选用于存储可变长字符串,需要使用1或者2个额外字节记录字符串的长度,比定长类型更节省空间,因为它仅使用必要的空间(例如越短的字符串使用越少的空间)。由于VARCHAR行是变长的,在UPDATE时可能使行变得比原来更长,这就导致需要做额外的工作。
varchar的使用场景:
字符串列的最大长度比平均长度大很多;列的更新很少,所以碎片不是问题;使用了像utf-8这样复杂的字符集,每个字符都使用不同的字节数进行存储。
 
CHAR:
CHAR类型是定长的,MySQL总是根据定义的字符串长度分配足够的空间。char适合于存储很短的字符串,或者所有值都接近同一个长度。例如char非常适合存储密码MD5值,因为这是一个定长的值。对于经常变更的数据,char也比varchar更好,因为定长的char类型不容易产生碎片。
原文地址:https://www.cnblogs.com/l10n/p/9401213.html