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

相关推荐
六月雨滴6 小时前
Oracle 数据库 ASM 自动存储管理
数据库·oracle·dba
老年DBA6 小时前
ZFS存储池配置终极指南
运维·数据库
CableTech_SQH6 小时前
江苏理工学院武进绿建区协同创新园智能化建设 F5G 全光方案百盛分析报告
大数据·网络·数据库·5g·信息与通信
Riu_Peter6 小时前
【技术】Docker 部署 MySQL
mysql·adb·docker
楼田莉子6 小时前
Linux网络:网络多路IO模型详解
linux·网络·数据库
wen_zhufeng6 小时前
python-dotenv 使用文档
数据库·python·oracle
phltxy6 小时前
Redis Java 集成到 Spring Boot
数据库·redis·git
Irene19916 小时前
SQL示例:外键约束是关系型数据库中用于建立两个表之间链接的一种规则
mysql
dadaobusi6 小时前
PCIe的ATS和PRS
java·网络·数据库
汽车仪器仪表相关领域6 小时前
HORIBA MEXA-584L 全功能汽车排放废气分析仪:便携精准排放检测 + 多参数同步测量 + 国六 / 欧 7 合规适配,汽车检测与调校的黄金标准
服务器·数据库·人工智能·功能测试·汽车·压力测试·可用性测试