Skip to content

Commit

Permalink
update sql docs
Browse files Browse the repository at this point in the history
  • Loading branch information
fengzhao committed Aug 6, 2024
1 parent 66a05cd commit f4367bf
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions docs/postgresql/03.体系架构.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ To be able to use the cluster,you must first initialize 2 (create) it. The direc
![逻辑架构](image.png)


在PostgreSQL内部,所有的数据库对象都通过相应的 **对象标识符(Object Identifiers, OID)** 进行管理,这些标识符是无符号的4字节整型。
`PostgreSQL`内部,所有的数据库对象都通过相应的 **对象标识符(Object Identifiers, OID)** 进行管理,这些标识符是无符号的4字节整型。

数据库对象与相应OID之间的关系存储在相应的 **系统目录(System Catalogs)** 中,依具体的对象类型而异。例如数据库和堆表对象的OID分别存储在pg_database和pg_class中

Expand All @@ -74,14 +74,14 @@ pg_database、pg_class是存放在一个名为pg_catalog的Schema下。其中pg_

> pg安装后会默认附带三个database,分别是postgres、template0、template1
在PostgreSQL中,数据库的创建是通过克隆数据库模板来实现的,这与SQL SERVER是同样的机制。如果`CREATE DATABASE dbname`语句没有指明数据库模板,所以系统将默认克隆template1数据库,得到新的数据库dbname。
在PostgreSQL中,数据库的创建是通过克隆数据库模板来实现的,这与`SQL SERVER`是同样的机制。如果`CREATE DATABASE dbname`语句没有指明数据库模板,所以系统将默认克隆template1数据库,得到新的数据库dbname。

> By default, the new database will be created by cloning the standard system database template1
如果在 template1 中添加数据库对象,这些对象将被复制到随后创建的用户数据库中。这种方式允许对数据库中的标准对象集进行站点本地修改。例如,如果您在 template1 中安装了程序语言 PL/Perl,那么在创建用户数据库时,无需采取任何额外操作,它就会自动出现在用户数据库中。
如果在 `template1` 中添加数据库对象,这些对象将被复制到随后创建的用户数据库中。这种方式允许对数据库中的标准对象集进行站点本地修改。例如,如果您在 `template1` 中安装了程序语言 `PL/Perl`,那么在创建用户数据库时,无需采取任何额外操作,它就会自动出现在用户数据库中。


第二个标准系统数据库名为 template0 。该数据库包含的数据与 template1 的初始内容相同,即仅包含 PostgreSQL 版本预定义的标准对象。在数据库集群初始化后,不应更改 template0 。**任何时候都不要对template0模板数据库进行任何修改,因为这是原始的干净模板**。如果其它模板数据库被搞坏了,基于这个数据库做一个副本就可以了。
第二个标准系统数据库名为 `template0` 。该数据库包含的数据与 `template1` 的初始内容相同,即仅包含 `PostgreSQL` 版本预定义的标准对象。在数据库集群初始化后,不应更改 `template0`**任何时候都不要对template0模板数据库进行任何修改,因为这是原始的干净模板**。如果其它模板数据库被搞坏了,基于这个数据库做一个副本就可以了。

如果希望定制自己的 **用户模板数据库** ,那么请基于`template1`进行修改,或者自己另外创建一个模板数据库再修改。对基于`template1`或你自建的模板数据库创建的数据库来说,你不能修改其字符集编码和排序规则。`template0`可以。

Expand Down

0 comments on commit f4367bf

Please sign in to comment.