mysql 物理结构_mysql数据物理结构

表空间:ibdata公用表空间文件,也可以通过配置innodb_file_per_table设置独立表空间文件

ibd独立表空间,只存储(数据,b+树索引,插入缓冲区)其余信息还是存储在ibdata中

Ibd存储了一个表的所有索引数据

一个表空间可以有多个文件,从0号文件开始

段:构成索引,表,回滚段的基本元素 - 79 (主要作用管理逻辑单元)

重点:段是一个逻辑的概念,用来管理,参看段生成 - p85

创建索引时会创建两个段 1.内节点段,2.叶子段

一个表段的数目=索引数目*2 (ibd文件就是由段组成)

Inode:一个inode代表一个段

簇:extent,构成段的基本元素(主要作用,申请空间)

1.连续分配的一段空间

2.多个簇在段内是随机组织的

3.默认包含64个页面(固定大小)

页面:簇的组成单位,也是段管理的最小单位 - p80(主要作用管理物理单元)

段中没有任何空间脱离页面形式存在

一个页大小16kb

0号文件0号页面

38号位置开始存储了表空间描述信息

38号前存储页面头信息

表空间信息和段信息中都存储了满簇链表,半满簇链表,空闲簇链表(双向链表)

簇描述页

一个簇描述页管理16384个页面 16384/40b = 256个簇,第一个簇为描述簇,实际管理255个簇

第一个簇(中第一个页面)被用来做簇描述页,未被加入表空间链表,不存储其它数据

通过描述符地址可得到后面连续64个页面的地址

b+树定位到页面,槽用于页面内搜索(多条记录对应一个槽)(一个槽2字节)

数据改变,修改槽的位置以确定数据顺序

槽内存储的是数据位置,数据之间通过链表相连

页面尾部

存储校验等信息,如果不完整说明数据断裂,两次写保证最终写入正常。

行格式(存储数据的具体格式)

行格式有三种存储方式

1.server层格式:适用所有存储引擎,row模式下binlog存储格式

2.索引元组格式:内存存储格式

3.物理存储格式:compact

变长字段长度存储(如果<128 || (<256 && !blob)) 1字节存储 否则2字节存储

物理长度=extra_size+data_size

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值