derby数据库源码分析(二)--页面分析

本文深入探讨Derby数据库的页面结构,重点分析控制行(Control Row)及其作用,它是数据库表的描述行,包含表的唯一标识。此外,文章还介绍了校验和的计算方式,采用CRC32算法,确保页面数据的完整性。同时,提到了表(Heap)和索引(B2I)的ID生成规则以及段(Segment)的概念,段ID为0,表和索引的ID从16和17开始,通过低四位区分类型。
摘要由CSDN通过智能技术生成

本文中主要介绍页面中的控制行和校验和的计算规则。

当数据库创建了表的第一个页面之后,会直接在页面中插入一行数据,这行数据的记录id是6,是页面里面的第一个记录,这个记录在derby数据库里面叫做控制行(Control Row)。控制行里面只有一列数据。列值为ContainKey对象。通过该ContainKey对象可以唯一确定一个表。在derby数据库里面表和索引都被认为是容器或者Conglomerate。所以第一个页面中的第一行记录是对表的描述。
下面介绍的是数据库表的控制行结构,索引的控制行还有差别,但是会在下面的内容介绍一些和索引相关的内容。
第一行记录的内容如下:

<
名字 长度 类型 描述
format id 2 short 表示该容器是哪一个类的对象
4 int
容器id 8 long
列个数 4 int 表示本表或者索引中有多少列
每一个列的format id 2 short 存储每一列对应的format id
使用非UCS_BASIC排序规则的列个数 压缩int,长度可以是1,2,4
使用非UCS_BASIC排序规则的列号 压缩int,长度可以是1,2,4 存储哪一列使用非UCS_BASIC排序规则,列从0开始计数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值