数据库架构

数据库架构

Database Cluster, DatabasesTables

PostgreSQLDatabase Cluster并非指多个数据库服务器的集群,而是由某个PostgreSQL服务器管理的Databases的集合。一个PostgreSQL服务器运行于单节点,并且管理单个Database Cluster

image

PostgreSQL中所有的Databases对象是由OIDs(Object Identifiers)来标识,每个OID4字节的无符号整型。而Databases与关联的OIDs关联存放于 System Catalogs 中,譬如DatabasesHeap Tables分别存放于pg_databasepg_class表中:

sampledb=# SELECT datname, oid FROM pg_database WHERE datname = 'sampledb';
 datname  |  oid
----------+-------
 sampledb | 16384
(1 row)

sampledb=# SELECT relname, oid FROM pg_class WHERE relname = 'sampletbl';
  relname  |  oid
-----------+-------
 sampletbl | 18740
(1 row)

Database Clutser的结构

物理结构

Database Cluster在物理存储上即是根目录(由PG_DATA指定)下的某个子目录,而Database也存放于Database Cluster的目录下,其又包含了Tables, Indexed等数据。在官方文档中我们可以查看具体的文件夹分割与功能描述。

image

逻辑结构

Heap Table File

Process Architecture |进程架构

Memory Architecture |内存架构

上一页