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

相关推荐
解救女汉子几秒前
如何分析Data Guard的网络瓶颈_Bandwidth与Redo传输速率的计算公式
jvm·数据库·python
m0_743623926 分钟前
Golang怎么做数据库事务_Golang数据库事务教程【技巧】
jvm·数据库·python
qq_330037997 分钟前
模型持久化不会提升准确率——揭秘机器学习中常见的评估误区
jvm·数据库·python
qq_424098567 分钟前
CSS如何实现背景平铺与拉伸控制_使用background-repeat属性
jvm·数据库·python
qq_4138474013 分钟前
html标签如何正确闭合_self-closing标签注意事项【介绍】
jvm·数据库·python
2501_9142459322 分钟前
Go语言怎么做并发下载_Go语言多协程下载教程【技巧】
jvm·数据库·python
a95114164232 分钟前
mysql如何创建安全的用户账户_mysql权限配置方法
jvm·数据库·python
摇滚侠36 分钟前
短信验证码登录 Redis实战 黑马程序员
数据库·redis·缓存
qq_3729069343 分钟前
Flask应用Python内存占用高怎么办_使用内存分析工具排查对象泄露
jvm·数据库·python
HHHHH1010HHHHH43 分钟前
怎么在MongoDB中追踪一个Document的具体流转路径_从Chunk分布到迁移历史日志分析
jvm·数据库·python