MySQL数据库中char(5),varchar(5)的区别

区别:char:1、char(5)表示存储定长的5个字符.占用更多的存储空间

                      2、char中不足5个用空格补齐,char(5)的空格表示占位不算一个字符

                      3、char是固定长度的,没有长度变化的损耗,实际性能是要优于varchar的

           varcahr:1、varchar(10)表示存储最长为10个的变长的字符,存储多少个就是多少个

                           2、varchar中空格也按一个字符存储

                           3、varchar的优点在于数据长度不定的情况下存储占用空间小;各有各的优点,                                   比如存储类似于uuid那种长度固定的,这种情况char是要优于varchar的

               

面试官:你平常定义varchar的长度会怎么定义呢?
会根据实际使用的最长长度来定义,比如确定最长很接近100但是不会超过100,那就定义100;

面试官:你刚刚有说到varchar的长度是变化的,存多少就是多少,既然这样那么为什么不直接定义1000或者更大呢?反正存储的长度都会是实际存储的长度,varchar(100)和varchar(1000)会有什么不同吗?
1.确实在存储的过程中varchar都是按照实际的长度存储,但是当数据加载出来进行使用的时候却不是这样,varchar(1000)占用的内存会大于varchar(100),尤其在建立索引的时候如果没有限制索引的大小,那么索引长度会默认采用的该字段的长度,也就是说varchar(1000)建立的索引存储大小要比varchar(100)建立索引存储大小大的多,加载索引使用的内存也更多。
2.另外,所有的列中的所能使用的长度总和是有限的,如果设置的varchar占用的过多,那么其他的列就必须要少,否则会报错无法创建。

面试官:那int(10)和他们有什么不同呢?
int(10)中的10指的是显示的长度,和实际存储的长度没有关系,但是char和varchar中的10时表示的存储长度;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值