dram.me

PostgreSQL的初始数据表

PostgreSQL多实例运行的补遗中有提到,PostgreSQL在初始化时会创建postgrestemplate0template1这三个数据库,而数据库里面初始就创建了多张系统默认表,可以通过\dt *查看。

对于这些表的说明,具体见这里的文档。文档中涉及到cluster、catalog、schema的概念,可以分别简单理解为数据库服务、数据库、名字域,具体的解释可以阅读这一个Stack Overflow的回答。

可以看到,这些表大多为各数据库私有,但也有个别表是在一个cluster中多个数据库共享的,比如pg_database存储了cluster中各数据库的信息,这一共享是基于tablespace实现的,具体可以查看文档,通过\d pg_database可以查看到pg_global tablespace。再如pg_tablespace表存储了cluster中所有tablespace信息。