char与varchar的区别

  • CHAR是一种固定长度的类型,而VARCHAR则是一种可变长度的类型。
  • 在CHAR(M)类型的数据列内,每个值要占M个字节,若小于M,则MySQL会在它的右边用空格来补足,但在查询时,这些空格会被去掉。
  • 在VARCHAR(M)类型的数据列里,除了存放数据所占用字节,还会再占用一个字节来记录其内容长度(L+1个字节),多余空格将会在以后插入操作的过程中被去掉。
  • 采用CHAR会多占用空间,造成空间的浪费。

如果定义了CHAR(100),最多可存放100个“a”或100个汉字,如实际存放一个“a”或一个汉字“我”,那么此列实际占用空间还是100,多出去的99个长补空格,浪费空间。
如果采用VARCHAR,则节省空间。我们还用上边的例子,把CHAR(100)改为varCHAR(100),情况完全不一样了,如实际存放一个“a”或一个汉字“我”,那么此列实际占用空间就是1个。

当实际值的长度超出定义的长度时,二者均不允许,则会报错。

总结

  • varchar比char省空间
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值