重点
varchar与char有什么区别?
char是一种固定长度
的类型,varchar则是一种可变长度
的类型
-
在
char(M)
类型的数据列里,每个值都占用M个字符的存储空间,即使字符个数没有M个,MySQL也会在它的右边用空格字符
补足.(其中M的取值范围是0~255
。如果省略掉M的值,那它的默认值就是1) -
在
varchar(M)
类型的数据列里,最多存放M个字符,不足M个字符时,每个值只占用刚好够用的字节数L再加上用来记录其长度的字节(1或2个子节),即总长度为L+1|2
字节(1个字节只能表示0~255,超过255则需2个字节表示长度).
所以varchar更省空间,不过因为char的长度固定,char的存取速度
还是要比varchar要快得多,方便程序的存储与查找
;
总结:
char:以空间换时间
varchar:以时间换空间。
关于varchar的经典面试题:MySQL中varchar最大长度是多少?
varchar存储的最大长度固定是65532(65535-1-2)字节
varchar(M) 中的M表示的最大字符个数,由最大行和使用的字符集共同确定。
举例理解:
create table t4(c int, c2 char(30),