MySQL表空间
文章目录
- MySQL表空间
- 
   - 1. MySQL中的表
- 
     - 1.1 IOT表
- 1.2 InnoDB逻辑存储结构
 
- 2. 独立表空间
- 
     - 2.1 段 segment
- 
       - 2.1.1 段的概念
- 2.1.2 段的分类
- 
         - 2.1.2.1 叶子节点段
- 
           - 主要结构
 
- 2.1.2.2 非叶子节点段
 
- 2.1.3 碎片区
 
- 2.2 区
- 
       - 2.2.1 区的概念
- 2.2.2 区的结构
- 
         - 2.2.2.1 XDES Entry结构
 
 
- 2.3 页
- 
       - 2.3.1 页的概念
- 2.3.2 页面类型
- 
         - FSD_HDR
- IBUF_BITMAP
- INDOE
- XDES类型
 
- 2.3.3 页面通用结构
- 
         - 2.3.4 INNODB数据页结构
- 
           - 2.3.4.1 File Header
- 2.3.4.2 Page Header
- 2.3.4.3 page directory
 
 
- 2.3.4 关于段的一些问题
 
- 2.4 行
- 
       - 2.4.1 行记录格式
- 2.4.1.1 COMPACT
- 
         - 行格式
 
- 2.4.1.2 REDUNDANT
- 
         - 行格式
- 
           - 记录额外的信息
- 记录真实的数据
 
 
- 2.4.1.3 COMPRESSED &DYNAMIC
- 溢出列
 
 
- 3. 系统表空间
- 
     - 3.1 extent0
- 3.2 extent 1& extent2
- 3.3 INNODE数据字典及元数据
- 
       - 基本系统表
- 其他表
 
 
- 4. 相关参数
- 
     - 4.1 表空间相关参数
- 
       - innode_file_per_table
 
- 4.2 页相关参数
- 
       - innodb_page_size
- innodb_max_dirty_page_pct
 
- 4.3 双写缓冲区相关参数
- 
       - innodb_doublewrite
 
 
- 5. 表空间相关问题
- 
     - 5.1 申请页面的过程
 
 
1. MySQL中的表
1.1 IOT表
在inodb存储引擎中,表是根据主键来组织存放的,这种存储方式称之为```Index organized table(IOT)索引组织表.
 IOT表的选择主键方式为:
 a. 表中定义的primary key
 b. 判断表中是否有非空唯一主键
 c. 表中的隐藏字段(row id)
ps: 主键的选择根据的是定义索引的顺序,而不是建表的顺序
1.2 InnoDB逻辑存储结构
图示:
 
 InnoDB表是存储在表空间中的,表空间只是一个逻辑的概念,表数据实际是存储在页面里的。



















