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

相关推荐
m0_748920366 小时前
HTML函数开发需要多少瓦电源_整机功耗估算指南【说明】
jvm·数据库·python
m0_746752306 小时前
C#怎么使用Tuple元组返回多个值_C#如何简化方法返回值【基础】
jvm·数据库·python
qq_654366986 小时前
如何处理ORA-01658报错_无法为表空间中的段创建INITIAL区
jvm·数据库·python
weixin_408717776 小时前
Python Tkinter自定义对话框怎么写_Toplevel创建子窗口并结合wait_window()实现阻塞
jvm·数据库·python
2301_817672266 小时前
HTML5中LocalStorage存储敏感数据的加密脱敏处理
jvm·数据库·python
2401_883600256 小时前
mysql如何开启慢查询日志_mysql性能监控环境配置
jvm·数据库·python
m0_674294646 小时前
如何用 Dask 替代 Pandas 实现高效 Excel 数据处理
jvm·数据库·python
qq_372906936 小时前
如何用 style.setProperty 修改带有优先级的 CSS 变量属性
jvm·数据库·python
Shorasul6 小时前
CSS如何使用-is伪类缩减重复选择器_通过分组选择器提升代码维护效率
jvm·数据库·python
2301_815279526 小时前
如何用 flatMap 清理数组中的无效数据并同步转换格式
jvm·数据库·python