openGauss数据库段页式与代码走读


一些概念

段页式存储是一种在数据库系统中常见的存储管理方式,它将数据库中的存储空间按照一定的规则组织成不同的段(segments)来进行管理。所有的表都在一个文件中,解决文件句柄过多,磁盘存在上限等问题。

扩展区块(Extent)(物理概念)

一段连续的物理存储空间,用于存放存放部分数据的容器。一共有四种尺寸64K、1M、8M、64M。正好在段空间内的2 3 4 5文件内存放。里边存放的就是page。

段页式存储文件(段空间)(物理概念)

    [carrot@dev-openeuler-arm 15797]$ ll
    total 147M
    -rw------- 1 carrot carrot 128M Feb 23 11:02 1
    -rw------- 1 carrot carrot 128M Feb 23 11:02 2
    -rw------- 1 carrot carrot 128M Feb 23 11:02 2_fsm
    -rw------- 1 carrot carrot 128M Feb 23 11:02 3
    -rw------- 1 carrot carrot 128M Feb 23 11:02 3_fsm
    -rw------- 1 carrot carrot 128M Feb 23 11:02 4
    -rw------- 1 carrot carrot 128M Feb 23 11:02 4_fsm
    -rw------- 1 carrot carrot 128M Feb 23 11:02 5
    -rw------- 1 carrot carrot 128M Feb 23 11:02 5_fsm
    -rw------- 1 carrot carrot 4.0K Feb 23 10:59 pg_filenode.map
    -rw------- 1 carrot carrot 4.0K Feb 23 10:59 pg_filenode.map.backup
    -rw------- 1 carrot carrot    4 Feb 23 10:59 PG_VERSION