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

相关推荐
PFinal社区_南丞5 小时前
PostgreSQL-10个鲜为人知的强大功能
数据库·后端
misty youth5 小时前
配置openguass 教程(自存)
数据库·ubuntu·华为·openguass
shuair6 小时前
mysql8支持远程访问 -mysql5.7支持远程访问
linux·mysql
瑞士卷@6 小时前
MyBatis入门到精通(Mybatis学习笔记)
java·数据库·后端·mybatis
白云偷星子6 小时前
MySQL笔记13
数据库·笔记·mysql
施嘉伟6 小时前
静默安装金仓数据库,到底有多简单?
数据库
Tapdata6 小时前
实时物化视图的新路径:从传统 Join 到跨源实时查询
数据库
optimistic_chen6 小时前
【Java EE进阶 --- SpringBoot】Mybatis - plus 操作数据库
数据库·spring boot·笔记·java-ee·mybatis·mybatis-plus
FJW0208147 小时前
关系型数据库大王Mysql——DDL语句操作示例
数据库·mysql
言之。7 小时前
Chroma 开源的 AI 应用搜索与检索数据库(即向量数据库)
数据库·人工智能·开源