MySQL——页结构,行结构
数据页
操作系统数据传输单元为4kb大小的数据块,一个页包含4个数据块
页头(38字节)
“索引即数据”,数据页也叫索引页
——页号(4字节)
LSN——日志序列号
页尾(8字节)
页尾校验和 和 页头校验和相对应。当一个页中的数据块由于断电在传输过程中传输失败,就需要用页头和页尾的“校验和”通过一些验证算法进行验证(默认使用CRC32验证)
数据行
数据页大部分为数据行,与数据库“表”里的真实数据行一一对应(行式数据库)
数据行默认为(DYNAMIC),一般存储额外信息,一般存储真实数据
额外信息包含“变长字段长度列表”“Null值列表”两个大小不确定的区域和占固定5字节(40Bit)的头信息
数据行”通过“下一行的地址偏移量”即next_record,将“页”内所有“数据行”组成了一个单向链表,这个偏移量指向的是下一个“行”中“真实数据”的起始地址。好处是:向右是真实的数据值,向左是头,无需额外的长度计算
为了方便查找,将行按主键大小分组,每组8个行,将每个组最后一个行在页中的地址放在记录在页目录中,每个地址对应一个槽,进行二分查找。每次新增数据,达到8个就分裂出来一个新的分组。为了判定是否达到8个,在每组最后一个行用n_owned记录行数
还有个数据页头:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY