千家信息网

PostgreSQL 的分槽页结构

发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,在PostgreSQL中,表存储在堆文件中,这些文件采用分槽的页(slotted-page)格式,该结构便于存储变长记录。尽管这种架构允许向一页中添加或删除元组,基于PostgreSQL的MVCC方式
千家信息网最后更新 2024年12月13日PostgreSQL 的分槽页结构

在PostgreSQL中,表存储在堆文件中,这些文件采用分槽的页(slotted-page)格式,该结构便于存储变长记录。

尽管这种架构允许向一页中添加或删除元组,基于PostgreSQL的MVCC方式,这些操作都不会真正地立即删除或替换行的旧版本。过期元组可以通过之后的命令来物理删除,从而在该页中形成空洞。通过行指针数组来间接访问元组的策略使得这些空洞可以重用。

大多数关系数据库限制记录不大于一个块的大小,这样可以简化缓冲区管理和空闲空间管理。大对象常常存储到一个特殊文件(或文件的集合)中而不是与记录的其他(短)属性存储在一起。然后一个指向该对象的(逻辑)指针存储到包含该大对象的记录中。

本文更多内容见:

https://hanson69.github.io/2020/05/05/PG%E7%9A%84%E5%88%86%E6%A7%BD%E9%A1%B5%E7%BB%93%E6%9E%84/

0