mysql的varchar到底能存多少个字符

mysql的varchar到底能存多少个字符

结论

(65535字节-其他列所占用的子节-varchar列长度-null标识占用字节数)/3,向下取整.

注意

  • 4.0版本及以下,MySQL中varchar长度单位是字节,如varchar(20),指的是20字节
  • 5.0版本及以上,MySQL中varchar长度单位是字符。如varchar(20),指的是20字符

测试环境

mysql5.7,存储引擎innodb,utf8字符集

复制代码
GBK编码:
一个英文字符占一个字节,中文2字节,单字符最大可占用2个字节。

UTF-8编码:
一个英文字符占一个字节,中文3字节,单字符最大可占用3个字节。

utf8mb4编码:
一个英文字符占一个字节,中文3字节,单字符最大占4个字节(如emoji表情4字节)。

单列

(65535-3)/3=21844

多列

(65535-其他列占用的总字节数)/3,向下取整

21844-255=21589

因为255也要占用额外的空间存储长度和null标识,实际需要255*3+长度+null标识

相关推荐
召田最帅boy2 分钟前
使用自定义图片作为Emoji表情的技术实现
数据库·html
2401_8535765018 分钟前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
Nandeska32 分钟前
6、认识和使用Redis Stack
java·数据库·redis
V1ncent Chen41 分钟前
SQL大师之路 09 模式匹配(正则表达式)
数据库·sql·mysql·正则表达式·数据分析
SelectDB技术团队1 小时前
Apache Doris + SelectDB:定义 AI 时代,实时分析的三大范式
数据库·数据仓库·人工智能·云原生·实时分析
weixin_704266051 小时前
事务管理全解析:从ACID到Spring实现
java·数据库·spring
m0_738120721 小时前
应急响应——知攻善防挖矿事件应急溯源详细过程
网络·数据库·安全·web安全
青柠代码录1 小时前
【MySQL】常用命令手册
数据库·mysql
琢磨先生David1 小时前
数据库实例(Database Instance)是什么?
数据库
幻乐星空1 小时前
【Oracle实战】Windows Server下Oracle归档日志满与磁盘空间告急的协同处理实战
数据库·windows·oracle