MySQL—char和varchar的区别

char和varchar日常使用最多的字符类型。

1、char(N)用于保存固定长度的字符串,长度最大为255,比指定长度大的值将会被减短,比指定长度小的值将会使用空格来填补。

2、varchar(N)用于保存可变长度的字符串,长度最大为65535,只存储字符串实际需要的长度,会使用一个额外的字节来存储字符串值得长度,如果列得长度小于 或等于255,则使用1个字节,否则就是用2个字节。

3、使用场景:

经常变化的值 :使用varchar比较合适,因为他只存储字符串的实际长度。

固定长度的值:例如uuid函数、md5加密后的值,使用char(N)比较合适,这类值长度固定,而且不需要使用额外的字节存储字符串值得长度。

另外大家可能会有一个疑问,那就是为什么不使用varchar(N),将N的值变大一点,就能存储下所有的数据,并且还为今后的扩展做了准备,不是一举两得吗?后来我才知道,在MySQL中会先在内存中分配固定的空间来保存值,那么N值比较大的话,无形中就浪费了内存,因为某些值比较小的时候,也会分配全部大小的内存,而对表的排序或者使用临时表尤其不好,所以还是分配真正需要的那部分空间就行。

猜你喜欢

转载自blog.csdn.net/qq_42251944/article/details/121331435
今日推荐