MySQL数据库——InnoDB引擎-逻辑存储结构(表空间、段、区、页、行)

目录

表空间


之前我们初步介绍过InnoDB引擎的逻辑存储结构,如下图所示:

下面来对其每个组成部分详细了解:

表空间

表空间 是InnoDB存储引擎逻辑结构的最高层, 如果用户启用了参数 innodb_file_per_table(在

8.0版本中默认开启) ,则每张表都会有一个表空间(xxx.ibd),一个mysql实例可以对应多个表空
间,用于存储记录、索引等数据。

段,分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段
(Rollback segment),InnoDB是索引组织表,数据段就是B+树的叶子节点, 索引段即为B+树的

非叶子节点。段用来管理多个Extent(区)。

区,表空间的单元结构,每个区的大小为1M。 默认情况下, InnoDB存储引擎页大小为16K, 即一个区中一共有64个连续的页。

页,是InnoDB 存储引擎磁盘管理的最小单元,每个页的大小默认为 16KB。为了保证页的连续性,InnoDB 存储引擎每次从磁盘申请 4-5 个区

行,InnoDB 存储引擎数据是按行进行存放的。在行中,默认有两个隐藏字段:

  • Trx_id:每次对某条记录进行改动时,都会把对应的事务id赋值给trx_id隐藏列。
  • Roll_pointer:每次对某条引记录进行改动时,都会把旧的版本写入到undo日志中,然后这个隐藏列就相当于一个指针,可以通过它来找到该记录修改前的信息。

END


学习自:黑马程序员------MySQL数据库课程

相关推荐
weixin_460443561 小时前
考试监控大屏为什么不能直接查数据库?WebSocket、Redis与实时数据聚合架构设计
数据库·redis·在线考试系统·培训考试系统·煤矿培训考试系统·煤矿在线考试系统·宏远培训考试系统
风哥2号1 小时前
数据库教程FGMT02‑生产环境Linux+Oracle19c安装配置与项目实战
linux·数据库·ffmpeg
传奇开心果编程1 小时前
【Rust入门知识点学与练】第24课:Trait 基础
开发语言·学习·rust
九皇叔叔5 小时前
【第二章】Redis基础入门:Redis是什么、为什么快以及核心特性详解
数据库·redis·缓存
莫陌尛.5 小时前
Docker MySQL 删表卡死、执行超时(MDL锁阻塞)问题复盘与根治方案
mysql·docker·容器
云和恩墨6 小时前
删库不跑路,回滚极速触达——zData S“旁路日志”持续保护原理深剖
数据库
潜心一志6 小时前
HALCON软件——基本架构,算子参数
学习·计算机视觉
MetaLite6 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
开心就多写,一点就开心6 小时前
导演视听语言与分镜系统笔记(一):景别系统、机位视点与时空连贯性设计
笔记·aigc·镜头·电影
爱吃苹果的日记本8 小时前
数据结构第三课(时间复杂度)
数据结构·学习