PostgreSQL 集群和服务器是一回事吗?

And*_*eck 10 postgresql terminology postgresql-9.6

来自官方文档(强调我的):

第 22 章管理数据库

正在运行的 PostgreSQL 服务器的每个实例都管理一个或多个数据库。因此,数据库是组织 SQL 对象(“数据库对象”)的最高层次级别。

第 22 章管理数据库 -> 22.1 概述

更准确地说,数据库是模式的集合,模式包含表、函数等。因此完整的层次结构是:服务器、数据库、模式、表(或其他类型的对象,例如函数)。

第 18 章服务器设置和操作 -> 18.2。创建数据库集群

数据库集群是由正在运行的数据库服务器的单个实例管理的数据库的集合。

我不太明白 PostgreSQL 集群和服务器概念之间的区别,但在我看来它们是同一件事?

Bas*_*que 9

太长了;博士

\n\n

是的。

\n\n

SQL 标准中使用的官方术语与更常用的术语之间会产生混淆。

\n\n
    \n
  • 集群=数据库服务器
  • \n
  • 目录=数据库
  • \n
  • Schema = 命名空间,一组表
  • \n
\n\n

计算机 > 集群 > 数据库/目录 > 架构 > 表

\n\n

有关更多信息,请参阅对 Stack Overflow 上类似问题的回答。

\n\n

简单介绍一下这里\xe2\x80\xa6

\n\n

根据SQL-92标题为“目录集群”的第 4.13 节,计算机上安装的 Postgres 称为集群。

\n\n

该集群有一个或多个数据库,每个数据库根据 SQL 标准称为一个目录。每个数据库都包含一个或多个模式,每个模式都是表集合的命名空间和安全边界。

\n\n

一台计算机上可以有多个集群。这通常是针对不同版本的 Postgres 完成的。例如,您可以安装 Postgres 9.5、9.6 和 10 版本,每个版本在不同的端口上侦听传入连接。这将是该计算机中的三个集群,每个集群都包含目录,目录包含架构,而架构包含表,而表包含由列定义的数据行。

\n

  • Postgres 中使用的术语“集群”**不是**“按照 SQL 标准”。事实上,SQL 标准根本没有谈论“集群”。 (4认同)
  • @a_horse_with_no_name 不正确。[SQL-92](http://www.contrib.andrew.cmu.edu/%7Eshadow/sql/sql1992.txt) 的第 4.13 节标题为“目录簇”。 (3认同)
  • 嗯,该章不存在于例如 SQL:2008 中 (2认同)