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

相关推荐
q***87603 小时前
yum安装redis
数据库·redis·缓存
IT油腻大叔3 小时前
MySQL VS ClickHouse 索引结构对比分析
mysql·clickhouse
煎蛋学姐3 小时前
SSM旅游资讯信息服务系统的实现04s3n(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·旅游·ssm 框架·旅游资讯系统·会员管理
3***31213 小时前
初识MySQL · 库的操作
数据库·mysql
合作小小程序员小小店3 小时前
网页开发,在线%新版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·eclipse·html·intellij-idea·旅游·jsp
anod3 小时前
奇怪的mysql时区问题
数据库·mysql·eclipse
鲸说MySQL4 小时前
MySQL表文件损坏
数据库·mysql
a***59264 小时前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql
0***v7774 小时前
使用Dify访问数据库(mysql)
数据库·mysql
愚戏师4 小时前
MySQL 数据导出
数据库·笔记·mysql