Advertisement

MySQL架构

阅读量:

背景:
数据库系统为何选择B+树作为存储结构,而非采用二叉树?主要原因在于二叉树的层级过高,导致每次查询操作需要遍历大量节点,进而引发对多个数据块的访问。而磁盘的随机读取操作在性能上存在较大开销,因此这种结构并不适用于需要高效数据检索的场景。

表存储结构设计与实现

单位层级关系为:表>段>区>页>行

在数据库系统中,无论是单行数据的读取还是多行数据的获取,均需将对应行所在的页面进行加载。这表明,存储空间的最小构成单元为页面。

每一个页面对应于B+树结构中的一个节点,而数据库I/O操作的基本单元同样为页面。所有与数据库相关的数据内容,均以页面结构的形式进行存储。

2. B+树索引结构

在B+树的结构中,每一个节点均对应一个页,每当创建新节点时,系统会分配相应的页空间。

位于同一层级的各个节点之间,借助页的结构形成一个双向链表。

非叶子节点包含多个索引项,每个索引项中存储了索引键以及指向下一层次页面的指针。

叶子节点则用于存储关键字和对应的行记录,在节点内部(即页结构内部),记录之间以单向链表的形式进行连接。

3. B+树页节点结构

具有以下几个特征:

将全部记录划分为若干个组,每个组内包含多条记录。

页目录中存储的是槽(slot),槽可视为分组记录的索引,每个槽的指针指向对应组中的最后一条记录。

通过槽可以确

全部评论 (0)

还没有任何评论哟~