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

相关推荐
xier_ran2 小时前
【infra之路】GPU 存储层次总结:L1 / L2 / HBM
java·网络·数据库
山甫aa4 小时前
Javaweb---MyBatis增删改查
java·数据库·后端·mybatis·springboot
@insist1235 小时前
系统集成项目管理工程师-信息和文档管理
网络·数据库·软考·系统集成项目管理工程师·软考中项·软件水平考试
残 风6 小时前
PostgreSQL 存储机制详解
数据库·postgresql·开源·数据库开发
JacksonMx7 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南
linux·数据库·python
tachibana27 小时前
性能指标的口径选择
数据库·人工智能·架构·大模型·llm
机器人梦想家8 小时前
具身机器人视觉服务的异步回调与并发控制
数据库·算法·机器人
菀亓8 小时前
ubuntu系统mysql安装
mysql
小妖同学学AI8 小时前
开源向量数据库的王者:Milvus 深度解析,专为 AI 应用打造的云原生搜索引擎!
数据库·开源·milvus