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表是存储在表空间中的,表空间只是一个逻辑的概念,表数据实际是存储在页面里的。