【死记硬背】
1 char是一种固定长度的类型,varchar则是一种可变长度的类型。
2 char字段的最大长度为255字符,varchar字段的最大长度为65535个字节。
3 char类型在空间使用上会有浪费,而varchar类型在空间使用上比较节省。
4 char类型的查找效率高,varchar类型的查找效率比较低。
【答案解析】
char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)。
varchar的使用场景:
1.字符串列得最大长度比平均长度大很多。
2.字符串很少被更新,容易产生存储碎片。
3.使用多字节字符集存储字符串。
char的使用场景:
存储具有近似得长度(md5值,身份证,手机号),长度比较短小得字符串(因为varchar需要额外空间记录字符串长度),更适合经常更新得字符串,更新时不会出现页分裂得情况,避免出现存储碎片,获得更好的io性能。
【温馨提示】
点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!