MySQL中B+Tree结构
2022-10-30 01:31:19 4 举报
- ProcessOn
作者其他创作
大纲/内容
页:数据节点
8
7
5
头部文件信息:页编号、存放页类型、上一页地址、下一页地址、校验和、修改时对应的日志序列位置。校验和:意思是将巨大的字符拆分并通过hash加密得到一个和。页头:页目录的槽位数量,记录用户记录的数量、第一个删除的记录、插入的方向。最小值的用户记录:存用户记录中索引对应的主键id值最小的那个。用户记录:包含可变字段长度列表(就是值的长度)、null值、记录头信息、列的值、隐藏字段(transaction_id事务ID、roll_pointer回滚点)。空闲空间:它默认是一个固定的大小,随着用户记录的变多,它就越来越小,就是一个存记录的位置。最大值的用户记录:存用户记录中索引对应的主键id值最大的那个。页目录:对用户记录进行分组管理,通过它使用二分查找,快速找到对应的记录。尾部文件信息:存放校验和作用是和头部文件中校验和比较,用于在刷磁盘时意外终止后再次连接时进行的比较、最后一次修改时日志序列的位置。
页编号:4
页编号:2
B+Tree结构
9
1、在不同节点下:1.1、在数据页是:如上。1.2、在目录页时:用户记录就不是记录列的值了,它记录的是索引对应的键值和叶子节点的页编号。2、页于页之间是一个双向链表的结构。3、页结构中的用户记录信息它是一个链表结构。
页文件的结构
每个节点表示一个页,页是B+Tree的基本存储单位
record_type:2
record_type:0
record_type:3
头部文件信息
页头信息
最小值的用户记录
用户记录
空闲空间
最大值的用户记录
页目录
尾部文件信息
20
索引主键的值:20
索引主键的值:....
索引主键的值:49
49
其他字段:gao
其他字段:test
其他字段:你好
索引键的值
50
90
页编号
2
3
4
record_type值的解释:0表示当前是用户记录列。1表示当前是目录列。2表示记录中索引对应记录中的最小值。3表示记录中索引对应记录中的最大值。
89
6
目录层
聚簇索引时:用户记录存储的是列值信息。非聚簇索引时:用户记录存储的是索引对应的键的主键ID,然后它通过这个索引再去聚簇索引中找具体的列值信息。
记录索引键的值和子节点的页编号
页编号:3
10
索引在主键上
存储数据层
110
页编号:1
记录索引键的数据信息
收藏
0 条评论
回复 删除
下一页