尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
mysql原理--补充
1.InnoDB 行格式有哪些InnoDB 提供了 4 种行格式分别是 Redundant、Compact、Dynamic和 Compressed 行格式。Redundant基本废弃Compact紧凑格式Dynamic和 Compressed 类似Compact2.COMPACT 行格式长什么样记录的额外信息1. 变长字段长度列表举例现在 t_user 表里有这三条记录先来看第一条记录name 列的值为 a真实数据占用的字节数是 1 字节十六进制 0x01phone 列的值为 123真实数据占用的字节数是 3 字节十六进制 0x03age 列和 id 列不是变长字段所以这里不用管。这些变长字段的真实数据占用的字节数会按照列的顺序逆序存放所以「变长字段长度列表」里的内容是「 03 01」而不是 「01 03」。同样的道理我们也可以得出第二条记录的行格式中「变长字段长度列表」里的内容是「 04 02」如下图第三条记录中 phone 列的值是 NULLNULL 是不会存放在行格式中记录的真实数据部分里的每个变长字段的「变长字段长度」需要用多少字节表示具体情况分为如果变长字段允许存储的最大字节数小于等于 255 字节就会用 1 字节表示「变长字段长度」如果变长字段允许存储的最大字节数大于 255 字节就会用 2 字节表示「变长字段长度」为什么「变长字段长度列表」的信息要按照逆序存放「记录头信息」中指向下一个记录的指针指向的是下一条记录的「记录头信息」和「真实数据」之间的位置这样的好处是向左读就是记录头信息向右读就是真实数据比较方便。「变长字段长度列表」中的信息之所以要逆序存放是因为这样可以尽量使得位置靠前的字段的真实数据和数据对应的字段长度信息可以同时在一个 CPU Cache Line 中同样的道理 NULL 值列表的信息也需要逆序存放。每个数据库表的行格式都有「变长字段字节数列表」吗「变长字段长度列表」只出现在数据表有变长字段的时候。2. NULL 值列表如果存在允许 NULL 值的列则每个列对应一个二进制位bit二进制位按照列的顺序逆序排列。二进制位的值为1时代表该列的值为NULL。二进制位的值为0时代表该列的值不为NULL。另外NULL 值列表必须用整数个字节的位表示1字节8位先来看第一条记录第一条记录所有列都有值不存在 NULL 值:但是 InnoDB 是用整数字节的二进制位来表示 NULL 值列表的现在不足 8 位所以要在高位补 0所以对于第一条数据NULL 值列表用十六进制表示是 0x00。接下来看第二条记录最后第三条记录每个数据库表的行格式都有「NULL 值列表」吗当数据表的字段都定义成 NOT NULL 的时候这时候表里的行格式就不会有 NULL 值列表了。3. 记录头信息记录头信息中包含的内容很多我就不一一列举了这里说几个比较重要的delete_mask 标识此条数据是否被删除。ext_record下一条记录的位置。从这里可以知道记录与记录之间是通过链表组织的。record_type表示当前记录的类型0表示普通记录1表示B树非叶子节点记录2表示最小记录3表示最大记录记录的真实数据记录真实数据部分除了我们定义的字段还有三个隐藏字段分别为row_id、trx_id、roll_pointer我们来看下这三个字段是什么。row_id如果我们建表的时候指定了主键或者唯一约束列那么就没有 row_id 隐藏字段了。如果既没有指定主键又没有唯一约束那么 InnoDB 就会为记录添加 row_id 隐藏字段。row_id不是必需的占用 6 个字节。trx_id事务id表示这个数据是由哪个事务生成的。 trx_id是必需的占用 6 个字节。roll_pointer这条记录上一个版本的指针。roll_pointer 是必需的占用 7 个字节。
RELATED

相关推荐

WINCC8.1安装与授权全流程指南

WINCC8.1安装与授权全流程指南

1. WINCC8.1安装与授权全流程指南WINCC8.1作为西门子旗下经典的SCADA系统软件,在工业自动化领域占据重要地位。不同于普通办公软件,它的安装和授权过程涉及多个专业技术环节,需要特别注意系统兼容性、组件依赖关系和授权文件处理。本文将基于…

📅 2026/9/20 7:15:00
2030年全球PCB产值将破1200亿美元!AI PCB增速32.6%,变革与机遇并存

2030年全球PCB产值将破1200亿美元!AI PCB增速32.6%,变革与机遇并存

01 PCB:电子产品之母,AI重塑增长逻辑PCB,即印刷电路板(Printed Circuit Board),是电子电路零件接合的基地,被誉为 "电子产品之母"。其制造过程类似建造一座 "微观多层楼房"…

📅 2026/9/17 21:10:52
寻找免垫密封胶供应商?这3点教你识别专业厂家

寻找免垫密封胶供应商?这3点教你识别专业厂家

在工业维护与装配领域,单组分硅酮免垫密封胶正逐渐成为替代传统纸质、橡胶或金属垫片的主流选择。然而,面对市场上众多的供应商,如何筛选出真正具备研发实力与品控能力的专业厂家,是不少采购与技术人员面临的难题。本文将从产品性…

📅 2026/7/26 19:13:03
MORE NEWS

更多资讯

📰

工业智能体落地三步法:图纸解析、动态映射与闭环执行

1. 这不是概念炒作,而是产线工人每天面对的真实问题“从图纸到生产现场:工业智能体落地的系统路径”——这个标题里没有一个词是虚的。我干了12年制造业数字化转型,跑过87家工厂,从汽车焊装车间到电子SMT产线,从食品灌…

📰

从零搭建OpenResearch:文件优先的本地化研究管理工作流

1. 从零搭建一个OpenResearch:为什么我要自己造这个轮子第一次听到“OpenResearch”这个词,很多人脑子里蹦出来的可能是某个开源学术平台,或者某个大厂内部的研究管理系统。但在我这里,它就是一个很朴素的东西:一套能让…

📰

用 GetQzonehistory 快速导出QQ空间全部历史说说,6 类文件一次拿全

用 GetQzonehistory 快速导出QQ空间全部历史说说,6 类文件一次拿全 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory QQ空间网页端只显示最近的部分动态,早年发的说…

📰

科大讯飞开源AstronRPA:企业级RPA+AI Agent架构拆解与落地实践

如果只把 RPA 当成“录屏回放工具”,那它永远只能干点人肉点击器的活。我在过去几年见过太多的机器人流程自动化项目,从上线时的雄心勃勃,到半年后因为目标网站一次改版就全线瘫痪。所以当听到科大讯飞开源了 AstronRPA 这个企业级 RPA AI A…

📰

RAG生产级基建实战:向量库选型、检索分层与提示词工程

1. 这不是又一篇“RAG入门教程”——它是一份基建工程师的实战手记你点开这篇,大概率刚被“RAG”这个词轰炸过:技术分享会PPT里它占三页,招聘JD里它和“架构师”并列加粗,开源项目README第一行写着“Built with LangChain RAG”&…

📰

iOS 18安全机制升级详解:BlastDoor与PAC如何阻断越狱

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬