
数据库
文章平均质量分 82
碎炎
用学核心编程当学操作系统的孩子。。。
展开
-
[INNODB] ibd文件之通过B+树索引和页目录查找行数据
### 准备工作首先,为了说明方便,本文使用了[innoisp](https://github.com/sryanyuan/innoisp) 来解析ibd文件来获取各个page的信息。ibd文件为innodb的存储文件,存储着各种数据,比如行数据、undolog、insert buffer等。在任意情况下,会存在系统ibd文件,所有的库表数据都会在其中。用户也可以选择将表给分离开来,使用一个表一个...原创 2018-05-11 11:13:31 · 1276 阅读 · 0 评论 -
[INNODB]ibd文件之索引页页目录(Directory slot)
B+树的具体体现在于非叶子节点,用于标识范围并指向叶子节点页,也就是说,通过某个索引,我们无法获得具体的行位置,只能获得行所在的叶子页。所以非叶节点就是B+树的非叶子页,用于范围索引,而叶子页就是B+树的叶子页,用于存储数据。我们在定位到了叶子页后,我们还需要检索叶子页的数据,这个检索需要由页目录来进行二分查找来找到具体的行数据。同时由于非叶节点页也有页目录,我们也可以通过页目录来快速的定位到...原创 2018-05-11 11:15:45 · 1811 阅读 · 0 评论 -
[INNODB] ibd文件之结构组成与空间分配
ibd是一个完整的表空间文件,其中最基本的单位为页(Page),一个Page通常为16k。page有不同的种类,用于不同类型的用途。在介绍页文件的分类前,我们先介绍对页进行分类管理的2个页组。extendextend,也叫作区,用于分配页。一个extend有64个连续的页,也就是1MB。当表空间页不足了要分配新页的时候,不会一页一页的分配,而是直接分配一个extend。se...原创 2018-05-11 11:16:37 · 2695 阅读 · 0 评论