VARCHAR(255) 与 VARCAHR(256)的区别在哪里?

varchar实际长度标识位: Mysql 在读取行记录时,需要知道varchar实际存了多长,才能知道要读出几位数据。1 字节 = 8比特位 ,2 ^ 8 = 256 ,即可以标识 0 ~ 255 ; 2 字节 = 16 比特位 ,2 ^ 16 = 65536 ,即可以标识 0 ~ 65535 ,因此最多仅需要 2 字节位即可标识实际长度。

varchar(255) 与 varchar(256) 的区别在哪里?
之前看到大佬设置 varchar(255) 很好奇有什么用,简单查阅以后得知,256 需要两个标识位,255需要一个标识位,记下以后满意的离去了。
后来探究varchar长度计算方式的时候发现了问题,假如我们设定字段类型为 varchar(255) ,那我存放255个汉字,字符串的字节长度应为 255 * 3 = 765 ,765 是不能用1个字节标识的。
实际上varchar(255)和varchar(256)的区别在于索引,Mysql 5.6 之前 索引最大的长度是 767 字节 。而 767 / 3 ≈ 255 ,正好支持索引的建立。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值