mysql varchar占用空间_mysql varchar存一个字符会占用多少空间

System.out.println("123123123123阿萨德发的发生123123123123123阿萨德发的发生123123123123阿萨德发的发生123123123123123123123123阿萨德发的发生123123123123阿萨德发的发生123123123123123123123阿萨德发的发生12312123123123123阿萨德发的发生123123123123阿萨德发的发生1231231231233123123123123123123阿萨德发的发生123123123123阿萨德发的发生123123123123".length());

System.out.println("123123123123阿萨德发的发生123123123123123阿萨德发的发生123123123123阿萨德发的发生123123123123123123123123阿萨德发的发生123123123123阿萨德发的发生123123123123123123123阿萨德发的发生12312123123123123阿萨德发的发生123123123123阿萨德发的发生1231231231233123123123123123123阿萨德发的发生123123123123阿萨德发的发1生1123112311231213".length());

System.out.println("123123123123阿萨德发的发生123123123123123阿萨德发的发生123123123123阿萨德发的发生123123123123123123123123阿萨德发的发生123123123123阿萨德发的发生123123123123123123123阿萨德发的发生12312123123123123阿萨德发的发生123123123123阿萨德发的发生1231231231233123123123123123123阿萨德发的发生123123123123阿萨德发的发1生11231123111111111111111111111111111111111111111112123123123123312113".length());

输出为

250

255

307

如果某个字段属性为varchar(249)那么第一个字符串存入库就会报错,如果varchar(254)的话第一个字符串存入就会报错。可以看出不管是数字还是字符串是按照单个字符来做基本单位的,只要一个字符就占一个长度,varchar(x)里的x就是你存入字符串的长度。

但是如果你用utf8存入"你好"实际会占用3*2个字节,因为mysql对utf8字符占用3字节,gbk占用2字节,当然数字还是占用1字节

写本文时参考了这篇文章:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值