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

相关推荐
p***s916 分钟前
MySQL的底层原理与架构
数据库·mysql·架构
b***629531 分钟前
Redis 设置密码无效问题解决
数据库·redis·缓存
I***261531 分钟前
Windows环境下安装Redis并设置Redis开机自启
数据库·windows·redis
v***870439 分钟前
【SqlServer】SQL Server Management Studio (SSMS) 下载、安装、配置使用及卸载——保姆级教程
数据库·sqlserver
r***869842 分钟前
Plugin ‘mysql_native_password‘ is not loaded`
android·数据库·mysql
v***59831 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb
凯子坚持 c1 小时前
openGauss向量数据库功能实操测评:轻量部署下的高维检索能力
数据库
n***26561 小时前
Python连接SQL SEVER数据库全流程
数据库·python·sql
不会编程的小寒1 小时前
数据库编程 面试
数据库·面试·职场和发展
枫叶丹41 小时前
【Qt开发】Qt窗口(三) -> QStatusBar状态栏
c语言·开发语言·数据库·c++·qt·microsoft