【发布时间】:2017-11-20 19:07:55
【问题描述】:
postgres SQL 中数据库相关对象的层次结构是什么? 如果是这样,表空间必须在实例级别创建,这与其他 RDBMS(我们在数据库下有表空间)不同。 如果是这样我们在实例级别创建表空间,那么数据库的目的是什么? postgres服务器上的表空间和数据库有什么区别?
【问题讨论】:
标签: postgresql
postgres SQL 中数据库相关对象的层次结构是什么? 如果是这样,表空间必须在实例级别创建,这与其他 RDBMS(我们在数据库下有表空间)不同。 如果是这样我们在实例级别创建表空间,那么数据库的目的是什么? postgres服务器上的表空间和数据库有什么区别?
【问题讨论】:
标签: postgresql
一个实例(在 PostgreSQL 中称为 cluster)是一个使用 PostgreSQL 服务器进程以initdb 初始化的数据目录。
表空间是数据目录之外的一个目录,也可以存储对象。表空间对于某些极端情况很有用,例如分配 I/O 或限制数据子集的空间。
数据库是具有权限的对象的容器,以模式组织。
不同之处在于,表空间是一个物理概念,它定义了存储数据的空间,而数据库是一个逻辑关于数据如何组织的概念,什么它们的意思是,它们是如何相关的,允许谁访问它们等等。
这两个概念是正交的。
一个数据库可以有多个表空间中的表,一个表空间可以包含来自多个数据库的数据。
【讨论】:
data from several databases. ??
Database 是您组织所有对象的地方。 Tablespace 只是这些对象的存储空间。
您可以将您的数据库对象存储在不同的Tablespace 中。例如,一个表存储在diskA中的表空间中,但另一个表使用diskB中的表空间来提高性能。或者,也许您需要一个用于大表的表空间,并且不介意为这些对象使用缓慢的大 HDD。
【讨论】: