MySQL 字符类型概述
不要以为字符类型只有 CHAR。
CHAR 与 VARCHAR 的区别
CHAR 是固定长度,只要定义一个字段是 CHAR(10),不论存储的数据是否达到 10 个字节,它都要占去 10 个字节的空间。
VARCHAR 则是可变长度的。如果一个字段可能的值是不固定长度的,且已知其不超过 10 个字符,定义为 VARCHAR(10) 通常更合算。VARCHAR 类型的占用空间是它的值的实际长度加 1。
为什么需要 +1 字节?
这 1 个字节用于保存实际使用了多大的长度。
使用建议
从这个 +1 中可以看出,如果一个字段可能值最长是 10 个字符,而多数情况下都用到了 10 个字符时,用 VARCHAR 就不合算了。因为在多数情况下,实际占用空间是 11 个字节,比用 CHAR 不合算。

