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

相关推荐
huhy~21 分钟前
基于CentOS7.9搭建MySQL高可用集群【MGR单主】
数据库·mysql
℡終嚸♂68024 分钟前
sql注入知识点(正则回溯绕过waf,CTF ez—RCE题目解析)
数据库·sql·oracle
了一梨2 小时前
SQLite3学习笔记4:打开和关闭数据库 + 创建表(C API)
数据库·学习·sqlite
Hgfdsaqwr7 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
charlotte102410248 小时前
数据库概述
数据库
清平乐的技术专栏9 小时前
HBase集群连接方式
大数据·数据库·hbase
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大10 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
哈__10 小时前
多模融合 一体替代:金仓数据库 KingbaseES 重构企业级统一数据基座
数据库·重构
老邓计算机毕设11 小时前
SSM医院病人信息管理系统e7f6b(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·医院信息化·ssm 框架·病人信息管理
2601_9496130211 小时前
flutter_for_openharmony家庭药箱管理app实战+药品分类实现
大数据·数据库·flutter