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+树的索引查询行记录
    • 2. 普通索引和唯一索引查询效率上有什么不同?


数据库的存储结构: 页

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第1张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第2张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第3张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第4张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第5张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第6张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第7张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第8张图片

页的内部结构

MySQL高级--04--InnoDB数据存储结构---数据页结构_第9张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第10张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第11张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第12张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第13张图片

在这里插入图片描述

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第14张图片

MySQL高级--04--InnoDB数据存储结构---数据页结构_第15张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第16张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第17张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第18张图片

MySQL高级--04--InnoDB数据存储结构---数据页结构_第19张图片

2.1 Free Space (空闲空间)

MySQL高级--04--InnoDB数据存储结构---数据页结构_第20张图片

2.2 User Records (用户记录)

MySQL高级--04--InnoDB数据存储结构---数据页结构_第21张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第22张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第23张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第24张图片

第三部分: 页目录与页头

MySQL高级--04--InnoDB数据存储结构---数据页结构_第25张图片

3.1 Page Directory(页目录)

MySQL高级--04--InnoDB数据存储结构---数据页结构_第26张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第27张图片

页目录分组

MySQL高级--04--InnoDB数据存储结构---数据页结构_第28张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第29张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第30张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第31张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第32张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第33张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第34张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第35张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第36张图片
在这里插入图片描述

MySQL高级--04--InnoDB数据存储结构---数据页结构_第37张图片

MySQL高级--04--InnoDB数据存储结构---数据页结构_第38张图片

3.2 Page Header(页面头部)

在这里插入图片描述
MySQL高级--04--InnoDB数据存储结构---数据页结构_第39张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第40张图片

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第41张图片

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

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第42张图片
MySQL高级--04--InnoDB数据存储结构---数据页结构_第43张图片

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

在这里插入图片描述

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

MySQL高级--04--InnoDB数据存储结构---数据页结构_第44张图片

你可能感兴趣的:(Mysql高级,mysql,数据库,database)