💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 持续学习,不断总结,共同进步,活到老学到老
- 人生的本质是追寻自我的提升,包括思想、能力、意志等等。
- 直面变化,找到背后更基础的东西,更基础的东西是用户的需求。
- 我们的成功是我们的现在和将来决定的。今天和明天已经由昨天决定,你还可以决定后天。
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
User Records
存储行格式
的地方,行格式的记录头信息
字段名 | 大小 | 描述 |
---|---|---|
预留位 1 | 1 位 | 没有使用 |
预留位 2 | 1 位 | 没有使用 |
delete_mask | 1 位 | 标记该记录是否被删除 |
min_rec_mask | 1 位 | B+树的每层非叶子节点中的最小记录都会添加该标记 |
n_owned | 4 位 | 表示当前记录拥有的记录数 |
heap_no | 13 位 | 表示当前记录在记录堆的位置信息 |
record_type | 3 位 | 表示当前记录的类型 0 表示普通记录 1 表示 B+树非叶子节点记录 2 表示最小记录 3 表示最大记录 |
next_record | 16 位 | 表示下一条记录的相对位置 |
delete_mask:
删除标记为 1 记录不会立即从磁盘上移除,是因为移除它们之后把其他的记录在磁盘上重新排列需要性能消耗,所以只是打一个删除标记而已,所有被删除掉的记录都会组成一个所谓的垃圾链表
,在这个链表中的记录占用的空间称之为所谓的可重用空间
,之后如果有新记录插入到表中的话,可能把这些被删除的记录占用的存储空间覆盖
掉。
next_record(单链表):
表示从当前记录的真实数据到下一条记录的真实数据的地址偏移量。 比方说第一条记录的 next_record 值为 32,意味着从第一条记录的真实数据的地址处向后找 32 个字节便是下一条记录的真实数据。
注意:
下一条记录
指得并不是按照我们插入顺序的下一条记录,而是按照主键值由小到大的顺序的下一条记录。而且规定 Infimum 记录(也就是最小记录)的下一条记录就是本页中主键值最小的用户记录未被删除的记录
(delete_mask = 0)会按照主键从小到大的顺序形成了一个单链表
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙