fastdb中记录的插入,更新,和删除,查询

记录的插入

记录的插入首先从内存中的dbTableDescriptor链表中找到对应的表oid,从硬盘上读取dbTable,之后分配记录空间,把记录存入硬盘,分配记录的oid,根据dbTable中的lastRow,把新的记录链入双向链表中,如果有索引的话,找出对应的字段更新索引,dbTableDescriptor链表相录于数据字典的作用,

 

更新和删除,也是这个过程,

查询的过程,大致也是如此,

从dbTableDescriptor链表-->硬盘上的dbTable-->根据dbTable中的firstRow找到第一个记录的oid--->之后就是按照链表,依次遍历的过程,当有索引时,就是不遍历,直接根据索引找到记录的oid,

查询用到了cursor,这里面有个列表用于保存满足查询条件的oid,里面并没有保存对录,只保留了oid

上面全部都用到了oid,因为知道oid之后,就知道了对象在文件中的偏移位置,而且对象本身是保存了记录大小的,根据这两项就能把记录读出来,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值