NOTE

3.6 InnoDB表空间

1. 表空间是什么 - 表空间是个抽象的概念 - 逻辑上 - 可以想象成页的池子 - 物理上 - 对于系统表空间来说,对应着文件系统中一个或多个实际文件 - 默认情况下, InnoDB 会在 数据目录 下创建一个名为 ibdata1 、大小为 12M 的文件,并且大小自扩展 - 对于每个独立表空间来

MySQL / Database创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 表空间是什么

  • 表空间是个抽象的概念
  • 逻辑上
    • 可以想象成页的池子
  • 物理上
    • 对于系统表空间来说,对应着文件系统中一个或多个实际文件
      • 默认情况下, InnoDB 会在 数据目录 下创建一个名为 ibdata1、大小为 12M 的文件,并且大小自扩展
    • 对于每个独立表空间来说,对应着文件系统中一个名为 表名.ibd 的实际文件

2. 表空间的结构

2.1. 页

2.2. 区

2.2.1. 区是什么

  • 表空间被划分为许多连续的区 ,每个区默认由64个页组成
  • 每256个区划分为一组,每个组的最开始的几个页面类型是固定

2.2.2. 为什么要分区

  • 页本身就足够了,但是页是离散存储的,使用随机IO
  • 而一个区就是在物理位置上连续的64个页,使用顺序IO

2.3. 段

  • 叶子节点有自己独有的 区 ,非叶子节点也有自己独有的区
  • 存放叶子节点的区的集合就算是一个 段 ( segment ),存放非叶子节点的区的集合也算是一个 段