Postgresql数据库体系结构

  • 时间:
  • 浏览:3
  • 来源:uu直播快3_UU快3直播平台

pd_lower, pd_upper--pd_lower指向line pointer尾部;pd_upper指向最新heap tuple的头部

tuple identifier (TID)--为了在表中标识元组,在內部使用了元组标识符(tid)。tid含有一对值,含有tuple的page的block numbers,以及指向该tuple的line pointer的偏移编号。这是有另好几个 典型的索引用法,用来查找tuple数据。此外,heap tuple总大小超过2KB(约1/4 8KB),使用本身TOAST (The Oversized-Attribute Storage Technique)的依据进行管理

database cluster物理上是有另好几个 base directory(PGDATA),包括这些子目录和文件

价值形式如下

1顺序读(Sequential scan)

2索引读(B-tree index scan) --TID value of the obtained index tuple is '(block = 24, Offset = 2)'

表空间

存储价值形式

database cluster > database > database object 含有与被含有的关系。

**cluster>'base'>database>object

pd_lsn--存储page最新更改时,wal日志的lsn信息

pd_checksum--存储page的校验值

tuple的读写依据

价值形式如下

注意:The maximum file size of tables and indexes can be changed using the configuration, option --with-segsize when building PostgreSQL.

page价值形式包括3主次

pg_control--控制文件,用于存储全局控制信息

pg_filenode.map--系统表的OID与具体文件名进行硬编映射

tablespace--独立于base目录,是有另好几个 额外的数据存储区data area

如下有另好几个 存储区表示

cluster>'tablespace'>[database]>object**

pg_internal.init--缓存系统文件,加快系统表读取速率单位

数据文件

聚簇

数据库

数据文件內部价值形式

数据库是怎么能能进行读写操作的呢?下文给出有另好几个 简单的描述,后期结合相关内容会有更完整篇 的描述

假设有另好几个 表只含有有另好几个 page,有另好几个 page只包括有另好几个 heap tuple

机构如下

pd_special--主要用于索引,在表中,指向最后有另好几个 page

https://www.postgresql.org/docs/current/storage-file-layout.html

现在插入一行数据,价值形式如下

完整篇 描述参考官方文档

聚簇逻辑价值形式

聚簇物理价值形式

数据库內部,管理数据文件(表和索引对应的)通过可变的relfilenode

oid2name — resolve OIDs and file nodes in a PostgreSQL data directory

单个文件大小小于1G的表或索引,存储在所属数据库目录下,每个表或索引就有买车人的OID。

数据库內部,管理表和索引通过OID