MySQL高级--04--InnoDB数据存储结构---数据页结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


数据库的存储结构: 页

innoDB讲数据划分为若干个页, 默认页的大小默认为16kb

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

行–页–区–段–表空间—数据库

在这里插入图片描述

页的内部结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一部分: 文件头和文件尾

在这里插入图片描述

在这里插入图片描述

1.1 File Header(文件头部)(38字节)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.2 File Trailer(文件尾部)(8字节)

在这里插入图片描述

第二部分: 用户记录和空闲空间

在这里插入图片描述

在这里插入图片描述

2.1 Free Space (空闲空间)

在这里插入图片描述

2.2 User Records (用户记录)

在这里插入图片描述
在这里插入图片描述

2.3 Infimum + Supremum(最小最大记录)

在这里插入图片描述
在这里插入图片描述

第三部分: 页目录与页头

在这里插入图片描述

3.1 Page Directory(页目录)

在这里插入图片描述
在这里插入图片描述

页目录分组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

页目录分组的个数如何确定?

在这里插入图片描述

页目录结构下如何快速查找记录?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.2 Page Header(页面头部)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从数据页的角度看B+树如何查询

在这里插入图片描述

1. B+树是如何进行记录检索的?

通过B+树的索引查询行记录

在这里插入图片描述
在这里插入图片描述

  1. 首先是从B+树的根开始,逐层检索,直到找到叶子节点,也就是找到对应的数据页位置,将数据页加载到内存中
  2. 页目录的槽采用二份查找的方式先找到一个粗略的记录分组,
  3. 然后再在分组中通过链表遍历的方式查找记录.

在这里插入图片描述

2. 普通索引和唯一索引查询效率上有什么不同?

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值