VarChar能存储多少个值

参考链接:MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文
首先我们需要了解utf-8和GBK的区别,因为不同的编码格所占的字节数是不同的

中文英文
utf-81~3个字节1个字节
GBK2个字节1个字节
Utf-8mb4(兼容utf-8)1~4位字节(mysql5.5之后,能用更多字符表示数据)1个字节

VarChar(n) 代表能存储n个字符,即不管是英文还是汉字都能存储n个,不同的是存储用的字节数

关于mysql能存多少值

  • mysql的记录行长度是有限制的,不是无限长的,这个长度是64K,即65535个字节,对所有的表都是一样的。

这个65535是指整行的长度,如果当前行还有其他字段总的字节数也会被占用。像blob和text类型是内容与行的其余部分分开存储,所以在行中存储的只有9~12个字节

  • MySQL对于变长类型的字段会有1-2个字节来保存字符长度。
  • 当字符数小于等于255时,MySQL只用1个字节来记录,因为2的8次方减1只能存到255。
  • 当字符数多余255时,就得用2个字节来存长度了。
  • utf-8状态下的varchar,最大只能到 (65535 - 2) / 3 = 21844 余 1。
  • gbk状态下的varchar, 最大只能到 (65535 - 2) / 2 = 32766 余 1。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值