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

相关推荐
穗余11 分钟前
RAG为什么必须用向量数据库?
数据库
weixin_4440129322 分钟前
如何在多实例管理时隐藏MySQL版本信息_安全混淆与配置
jvm·数据库·python
weixin_4597539432 分钟前
SQL处理大规模分组聚合的内存限制_调整服务器配置
jvm·数据库·python
Kingairy43 分钟前
保证数据一致性技术
数据库
小碗羊肉1 小时前
【JavaWeb | 第十二篇】项目实战——登录功能
java·前端·数据库
想唱rap1 小时前
五种IO模型和非阻塞IO
linux·运维·服务器·网络·数据库·tcp/ip
m0_733565461 小时前
如何指定PHP版本运行phpMyAdmin_多版本共存配置
jvm·数据库·python
xcLeigh2 小时前
IoTDB JDBC 完整使用教程:连接、查询、批处理与字符集配置
开发语言·数据库·qt·iotdb·查询·批处理·连接
chunyublog2 小时前
数据挖掘环境搭建
数据库
阿洛学长2 小时前
CSDN、掘金、简书博客文章如何转为Markdown?
运维·数据库·架构·php·持续部署