【MySQL】常⽤字符类型长度和使⽤
MySQL中字符类型有很多个,⽤的最多的是char和varchar类型。他们的对⽐如下图:
utf8中⼀个字符占⽤3字节,gbk占⽤2个字节,latin1占⽤1个字节。
char(x)保存的字符长度固定为x(x最⼤取值255),不⾜的会在右侧⽤空格填充(仅储存,查询出来没有空格),⽽超过x长度的部分会截取掉。所以表格中占⽤字节都是9。
varchar(x)保存的字符长度最⼤为x(x最⼤取值65535),不⾜的直接储存实际字符,超过x长度的也会被截取。由于使⽤额外的1字节储存字符长度,所以表格中是实际长度*3+1个字节。
1.char和varchar的最⼤长度会根据字符编码不同⽽变化,影响因素有3个:
1.字符编码。如utf8编码中,⼀个字符占⽤3字节,最⼤长度为21845。
2.储存长度。varchar要占⽤1到2个字节储存字符本⾝的长度,长度⼩于等于255⽤1个,超过⽤2个。
varchar2最大长度3.单⾏最⼤长度限制。⼀张表中所有字段设置的长度之和不能超过65535,如果表中两个varchar,⼀个长度为65530,另⼀个为6,
建表就会报错。储存更长的可以⽤text和blob类型。
2.选择合适的类型使⽤
使⽤char:固定长度的字符串,如MD5加密后的字符串,时间戳,证件号码,或者⼀些很短的字符串。
使⽤varchar:列数据长短不⼀致,数据更新频率低(长度变化会有⼀些额外的操作)。
使⽤varchar的时候,长度也要注意合适,不然会造成内存空间浪费。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论