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标识

相关推荐
djjdjdjdjjdj14 小时前
如何用参数解构在函数入口处直接提取对象属性
jvm·数据库·python
forEverPlume14 小时前
mysql如何批量增加表的字段_脚本化DDL操作实践
jvm·数据库·python
精益数智工坊14 小时前
物料管理是什么?物料管理的具体工作有哪些?
大数据·前端·数据库·人工智能·精益工程
m0_5964063714 小时前
CSS如何高效引入样式表_对比link标签与import指令的性能差异
jvm·数据库·python
行云的逆袭14 小时前
树莓派4B安装adminer数据库简易工具
数据库
solihawk14 小时前
服务器内存被谁“偷”走了?
服务器·数据库
德彪稳坐倒骑驴15 小时前
SQL连续登录问题
服务器·数据库·sql
葡萄城技术团队15 小时前
告别臃肿 SQL:HR 系统如何实现“字段级”权限控制与动态脱敏方案?
数据库·sql
SQL必知必会15 小时前
SQL HAVING 是什么?一篇讲清 WHERE 和 HAVING 的区别
数据库·sql
weixin_5689960615 小时前
c++如何实现日志文件的异步落盘功能_基于无锁队列方案【附代码】
jvm·数据库·python