MySQL 中 varchar 的长度
1. varchar(n) 的最大值字符数是多少
varchar 最大可以保存 65535 字节,但是具体保存多少个字符,不同的编码不一样。
MySQL 5.0 之前的版本:n 指的是 n 个字节
n 的最大值是 65535,如果以 utf-8 格式存放数据,最长保存 [n/3] 个汉字(一个汉字占 3 字节),即 varchar(20) 类型的字段只能保存 6 个汉字;
MySQL 5.0 之后的版本:n 指的是 n 个字符
无论是数字,字母还是汉字,都可存放 n 个,即 varchar(20) 类型的字段可以保存 20 个汉字;
utf8mb4 格式:varchar(n) 中每个字符最多占 4 个字节,英文数字占 1 个字节,汉字占 3 个字节。
2. varchar(n) 需要 1 到 2 个额外字节记录保存的字符长度
当 n<=255 的时候,只需要 1 个字节记录即可(数据表示范围:0~28-1,即 0~255);当 n>255 的时候,则需要 2 个字节记录(28~ 216-1,即 256~65535)。
字符的长度保存在第一个或者前两个字节中。所以(对于 utf8mb4 格式):
a. 如果 varchar(20),实际最多需要 1+20*4 个字节的存储空间;
b. 如果 varchar(255),实际最多需要 1+255*4 个字节的存储空间;
c. 如果 varchar(256),实际最多需要 2+256*4 个字节的存储空间;
d. 如果 varchar(500),实际最多需要 2+500*4 个字节的存储空间。
因为 varchar 是存储可变长字符串,所以:
a. 如果 name varchar(8),那么 name='12345678',实际长度为 1+8*1 字节;
b. 如果 name varchar(32),那么 name='12345678',实际长度为 1+8*1 字节;
c. 如果 name varchar(16),那么 name='1234',实际长度为 1+4*1 字节;
基于 MySQL 中 varchar 长度的设置问题 修改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-03-07 VSCode 终止终端