当前位置: 首页 > news >正文

mysql 05 InnoDB数据页结构

01.数据页结构的快速浏览

前边我们简单提了一下 页 的概念,它是 InnoDB 管理存储空间的基本单位,一个页的大小一般是 16KB 。InnoDB 为了不同的目的而设计了许多种不同类型的 页 ,比如存放表空间头部信息的页,存放 Insert Buffer信息的页,存放 INODE 信息的页,存放 undo 日志信息的页等等等等。

数据页代表的这块 16KB 大小的存储空间可以被划分为多个部分,不同部分有不同的功能,各个部分如图所示:
在这里插入图片描述

在这里插入图片描述

02.记录在页中的存储
在这里插入图片描述
在页的7个组成部分中,我们自己存储的记录会按照我们指定的 行格式 存储到 User Records 部分。但是在一开始生成页的时候,其实并没有 User Records 这个部分,每当我们插入一条记录,都会从 Free Space 部分,也就是尚未使用的存储空间中申请一个记录大小的空间划分到 User Records 部分,当 Free Space 部分的空间全部被 User Records 部分替代掉之后,也就意味着这个页使用完了,如果还有新的记录插入的话,就需要去申请新的页了

03.例子
我们先创建一个表:

mysql> CREATE TABLE page_demo(-> c1 INT,-> c2 INT,-> c3 VARCHAR(10000),-> PRIMARY KEY (c1)-> ) CHARSET=ascii ROW_FORMAT=Compact;
Query OK, 0 rows affected (0.03 sec)

这个新创建的 page_demo 表有3个列,其中 c1 和 c2 列是用来存储整数的, c3 列是用来存储字符串的。需要注意的是,我们把 c1 列指定为主键,所以在具体的行格式中InnoDB就没必要为我们去创建那个所谓的 row_id 隐藏列了。而且我们为这个表指定了 ascii 字符集以及 Compact 的行格式。所以这个表中记录的行格式示意图就是这样


http://www.mrgr.cn/news/38853.html

相关文章:

  • huggingface使用国内镜像站下载
  • Sqoop面试整理
  • 海口网站建设的最佳实践
  • Spring MVC 参数校验 总结
  • Go语言接口的基本概念
  • MongoDB的索引功能及其在Java中的实现
  • 头歌 应用密码学实验(1-3实验代码)
  • 【win11】关闭windows11系统的讲述人
  • PageRank算法:从原理到实战
  • spring-boot 整合 mybatis
  • 9.29今日错题解析(软考)
  • 0108 Spring Boot启动过程
  • 2024年国庆节不能错过好物!旅行必备性价比高西圣充电宝!
  • FPGA IO延迟的约束与脚本
  • [kylin D2000]麒麟系统飞腾D2000下LVDS屏幕BIOS下能亮系统下不亮问题解决方法
  • Python __getattr__()函数的应用
  • 论文阅读(十一):CBAM: Convolutional Block Attention Module
  • 84、Python之鸭子类型:魔术方法自定义类型也可以实现加减乘除
  • 告别“军备竞赛”!L2进入下沉普及周期,谁在领跑本土方案市场?
  • UDS_4_传输存储的数据功能单元