Postgresql体系架构(三)-逻辑结构
- 逻辑概览
逻辑存储结构是内部的组织和管理数据的方式;主要包括数据库集群(Database Cluster)、数据库(Database)、表空间(Table Spaces)、数据库(Databases)、表(Tables)、索引(Indexes)等。

所有数据库对象都有各自的对象标识符oid(object identifiers),它是一个无符号的四字节整数,相关对象的oid都存放在相关的系统目录表中,比如数据库的oid和表的oid分别存放在pg_database,pg_class表中。
- 1. 数据库集群-Database Cluster
也叫数据库集簇。它是指有单个PostgreSQL服务器实例管理的数据库集合,组成数据库集群的这些数据库使用相同的全局配置文件和监听端口、共用进程和内存结构。一个DataBase Cluster可以包括:多个DataBase、多个User、以及Database中的所有对象。
- 2. 数据库-Database
数据库是数据库对象的集合。在关系数据库理论中,数据库对象是一种用于存储或引用数据的数据结构。(堆)表是一个典型的例子,还有许多其他的例子,如索引、序列、视图、函数。 在 PostgreSQL 中,数据库本身也是数据库对象,在逻辑上彼此分离。所有其他数据库对象 (如表、索引等)都属于各自的数据库。

数据库初始化之后自动会创建postgres、template0、template1三个数据库。
postgres数据库:这是默认的管理数据库,用于管理 PostgreSQL 服务器和用户角色。它包含了用于管理服务器和用户的系统表,例如 pg_roles、pg_database 等。通常不建议用于存储实际数据,而仅用于管理目的。
template0数据库:是一个不可修改的数据库,它是PostgreSQL的原始模板,包含了数据库的初始设置和结构。任何时候都不应对template0进行修改,因为它是一个干净的模板,用于在需要时创建一个新的、干净的数据库副本。使用template0创建数据库时,可以指定字符集和本地化设置。例如,可以指定编码为UTF-8,collate和ctype属性为特定的区域设置。template0主要用于在数据库损坏或需要恢复原始状态时使用。由于它是一个不可修改的模板,可以确保新创建的数据库始终基于一个干净的状态
template1数据库:是PostgreSQL中的一个模板数据库,可用于创建其他数据库的模板,在创建新数据库时提供基础设置和数据结构。与 template0 类似,也是一个模板数据库。但与template0 不同的是,template1 是可以被修改的,比如修改模版字符集、或者可以在其中创建用户自定义的对象,例如函数、表等。默认情况,我们新创建database会以template1库为模板进行创建。使用template1创建数据库时,不能指定新的字符集和本地化设置,只能使用与template1相同的设置 。template0不能连接,而template1可以连接并创建对象

最低0.47元/天 解锁文章
315

被折叠的 条评论
为什么被折叠?



