暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第 2 章:数据库的存储结构 2.5 记录的修改

2.5 记录的修改

记录的修改主要分为插入、更新和删除三种场景。


数据插入

数据插入在存储中的流程可以简单概括为以下几步:

  1. 找到空闲块。

  2. 把记录插入块的空闲位置。

  3. 维护新插入记录的偏移。

如下图所示,先从未使用的空间中找到可以插入的位置,写入记录后,再把记录相对于块的偏移写入到偏移表中进行维护。

数据插入


数据删除

数据删除一般在数据库中的实现,并非把实际的数据内容马上从存储介质中擦除,而是在需要删除的记录中打上一个删除的标记,例如删除了记录 1,则把记录 1 前面的一个字节或一个 bit 标记为 delete,然后数据库系统再根据具体的场景(如 GC 流程),再统一回收这部分的空间。

数据删除


数据修改

记录的修改主要有两种场景:

  • 定长记录的修改

    定长记录的修改,因为记录定长,因此可以使用覆盖写的方式进行修改,把修改后的数据在原地址中覆盖写入。

  • 变长记录的修改

    变长记录的修改,因为修改后数据的长度可能会发生变更,所以不能使用覆盖写这种方式。而是会在块中重新查找空闲的位置,把修改的记录写入到新位置中,最后对原记录打上删除的标记,避免旧数据被访问。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论