1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
当存储变长记录时,存储引擎如何管理可用空间?
为了简化变长记录的空间管理问题,可以页分成固定大小的段。但这样做最终也会浪费一些空间。例如,如果使用64字节的段,那么除非记录长度恰好是64的倍数,否则将浪费64-(n mod 64)个字节,这里n表示记录长度。
为了高效地存储变长记录,例如字符串、二进制大对象(BLOB)等,可以使用一种称为分槽页(slotted page)的技术,即分成很多槽的页。将页组织成一个槽或单元格的集合,并将指针和单元格分别存放在页两侧的独立内存区域中。若想保持记录原来的顺序,只需要重新组织指向单元格的指针;若要删除一条记录,只需将记录的指针置为空或删除指针即可。
分槽页具有一个固定大小的头部,其中包含关于页和单元格的重要信息。单元格的大小可能各不相同,并且可以容纳任意数据:键、指针、数据记录等。
评论
有用 12
墨值悬赏