2.5 记录的修改
记录的修改主要分为插入、更新和删除三种场景。
数据插入
数据插入在存储中的流程可以简单概括为以下几步:
找到空闲块。
把记录插入块的空闲位置。
维护新插入记录的偏移。
如下图所示,先从未使用的空间中找到可以插入的位置,写入记录后,再把记录相对于块的偏移写入到偏移表中进行维护。
数据删除
数据删除一般在数据库中的实现,并非把实际的数据内容马上从存储介质中擦除,而是在需要删除的记录中打上一个删除的标记,例如删除了记录 1,则把记录 1 前面的一个字节或一个 bit 标记为 delete,然后数据库系统再根据具体的场景(如 GC 流程),再统一回收这部分的空间。
数据修改
记录的修改主要有两种场景:
定长记录的修改
定长记录的修改,因为记录定长,因此可以使用覆盖写的方式进行修改,把修改后的数据在原地址中覆盖写入。
变长记录的修改
变长记录的修改,因为修改后数据的长度可能会发生变更,所以不能使用覆盖写这种方式。而是会在块中重新查找空闲的位置,把修改的记录写入到新位置中,最后对原记录打上删除的标记,避免旧数据被访问。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




