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字节

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

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页