在derby数据库中,索引和表统称为容器或者conglomerate。表和索引的第0个页面叫做配置页面(alloc page),该页面里面用于管理后面页面的状态以及分配信息。表和索引中该页面的数据布局格式都是相同的。该页面在后面介绍,下面首先介绍一下索引的页面。
索引的控制行位于索引的第二个页面,页号为1。控制行是页面中的第一个记录,记录id为6。在derby中,索引是B树实现的,根据页面是否是叶子节点,索引控制行又分为:叶子节点的控制行和分支节点的控制行。叶子节点控制行的类是LeafControlRow,分支节点的控制行是BranchControlRow。
下面首先介绍一下叶子节点的控制行。
索引是B2I类的实例。索引控制行共有7列。索引的记录头部、列头部前面已经介绍过,请参考《derby数据库源码分析(一)–页面分析》
名字 | 长度(字节) | 类型 | 描述 |
---|---|---|---|
format id | 2 | short | 如果是叶子结点该值是LeafControlRow的format id,否则是分支节点的控制行是BranchControlRow的format id。 |
左兄弟节点页号 | 8 | long | 没有左兄弟的话,该值为-1 |
右兄弟节点页号 | 8 | long | 没有右兄弟的话,该值为-1 |
父节点页号 | 8 | long | 根节点中该值为-1 |
level | 8 | long | 位于B树的第 |