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

相关推荐
无小道3 分钟前
Mysql——索引
mysql·索引·搜索
炸炸鱼.5 分钟前
PostgreSQL 日常维护速查手册
数据库·oracle
元宝骑士34 分钟前
深度解析 ROW_NUMBER() 窗口函数:从入门到实战避坑指南
后端·mysql
014-code1 小时前
MySQL 常用业务 SQL
数据库·sql·mysql
知识分享小能手1 小时前
MongoDB入门学习教程,从入门到精通,MongoDB的选择片键 - 完整知识点(16)
数据库·学习·mongodb
知识分享小能手1 小时前
MongoDB入门学习教程,从入门到精通,MongoDB分片配置完全指南(15)
数据库·学习·mongodb
y = xⁿ1 小时前
【MySQL】数据库的脏读,不可重复读和幻读,覆盖索引是什么,索引类型有哪些
数据库·mysql
小冷coding2 小时前
【面试】结合项目整理的场景面试题,覆盖 Java 基础、锁、多线程、数据库、分布式锁 / 事务、消息中间件等核心维度
java·数据库·面试
kcuwu.2 小时前
Python 正则表达式从入门到实战
数据库·python·正则表达式