postgres SQL中数据库相关对象的层次结构是什么? 应该是这样,必须在实例级别创建表空间,这与其他RDBMS(我们在数据库下有表空间)不同。 如果是这样,我们在实例级创建表空间,数据库的目的是什么? postgres服务器上的表空间和数据库有什么区别?
答案 0 :(得分:1)
一个实例(在PostgreSQL中称为 cluster )是一个用initdb
初始化的数据目录,带有PostgreSQL服务器进程。
表空间是数据目录之外的目录,也可以存储对象。表空间对于某些极端情况非常有用,例如分配I / O或限制数据子集的空间。
数据库是具有权限的对象的容器,以模式组织。
区别在于表空间是物理概念,它定义了存储数据的空间,而数据库是关于数据组织方式的逻辑概念,他们的意思是,他们是如何相关的,谁可以访问他们等等。
这两个概念是正交 数据库可以在多个表空间中包含表,而表空间可以包含来自多个数据库的数据。
答案 1 :(得分:0)
Database
是您组织所有对象的地方。 Tablespace
只是这些对象的存储空间。
您可以将db对象存储在不同的Tablespace
中。例如,一个表存储在diskA的表空间中,而另一个表使用diskB中的表空间来提高性能。或者您可能需要一个用于大表的表空间,并且不介意为这些对象使用慢速大硬盘。