

`name` varchar(100) NOT NULL DEFAULT '' COMMENT '姓名'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;
`VARCHAR` 字段会根据实际存储的字符串长度动态调整存储空间;
`CHAR` 字段则会预先分配指定长度的空间,无论实际存储的字符串有多长。
varchar 最大值是多少?

不同字符集的影响



utf8mb4 的 maxlen 为 4,对应的 VARCHAR 最大长度为 16383。两者相乘的结果是 65532。 utf8mb3 的 maxlen 为3,对应的 VARCHAR 最大长度为 21844。两者相乘的结果同样是 65532。 latin1 的 maxlen 为 1,对应的 VARCHAR 最大长度为 65533。两者相乘的结果是 65533。

NULL是否会影响?

列数是否会影响?

列为什么不是 65535 而是 65533 ?


额外信息包括变长字段的长度列表(如 VARCHAR、TEXT、BLOB 字段的长度)和 NULL 值列表(记录哪些列的值是NULL)。如果所有列都是NOT NULL,那么这个列表就不需要。此外,还有5个字节的记录头信息,用于存储一些特殊信息,如行的删除状态、在数据页中的位置等。 真实数据部分则包含行中每一列的实际内容。除了我们明确创建的列外,还有一些隐藏列,如Row_ID(当表没有声明主键时自动生成)和事务相关的字段,如trx_id(记录修改该行的事务ID)和roll_pointer(指向该行上一个版本的指针,用于实现多版本并发控制)。


页大小 16k,怎么保存 65533(64k)的数据?


大于 64k 的字符串怎么处理?
更多精彩内容,关注我们▼▼ 复制
文章转载自数据与人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
971次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
578次阅读
2025-04-25 15:30:58
墨天轮个人数说知识点合集
JiekeXu
456次阅读
2025-04-01 15:56:03
MySQL数据库当前和历史事务分析
听见风的声音
437次阅读
2025-04-01 08:47:17
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
376次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
363次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
337次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
311次阅读
2025-04-07 12:14:29
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
211次阅读
2025-04-15 15:27:53
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
186次阅读
2025-04-01 16:20:44