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

相关推荐
Wyz201210246 小时前
Python 字典高效合并:自定义处理重复键的完整指南
jvm·数据库·python
2401_897190556 小时前
如何在保留功能逻辑的前提下隐藏网页菜单项(CSS 隐藏
jvm·数据库·python
倔强的石头1066 小时前
NFS网络文件系统下企业级数据库安装排障实战:环境变量失效与权限问题的深度解析
网络·数据库
2501_914245936 小时前
如何在phpMyAdmin中查询加密数据_AES_DECRYPT函数的实时解密展示
jvm·数据库·python
bingyan03716 小时前
mysql-使用openclaw自动化安装xenon集群
运维·mysql·自动化·集群·openclaw·xenon
21439656 小时前
如何防止SQL注入利用存储过程_确保存储过程不拼字符串
jvm·数据库·python
2301_764150566 小时前
如何统计表单中已填写的特定类名输入框数量
jvm·数据库·python
2401_897190556 小时前
宝塔面板SSH提示连接被拒绝_检查服务器端口开关
jvm·数据库·python
2401_871696526 小时前
MySQL无法通过网络连接服务器_检查bind-address与访问权限
jvm·数据库·python
2401_887724506 小时前
SQL注入的安全架构设计_将数据库置于内网隔离区
jvm·数据库·python