Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18

51.2. 连接建立方式 #

PostgreSQL 采用 每个用户一个进程 的客户端/服务器模型。在此模型中,每个 客户端进程 只连接到一个 后端进程。由于我们事先不知道会有多少连接,因此必须使用一个 监视进程,在每次请求连接时生成一个新的后端进程。这个监视进程称为 postmaster,它在指定的 TCP/IP 端口监听传入的连接。每当检测到连接请求时,它就会生成一个新的后端进程。这些后端进程通过 信号量共享内存 与彼此以及与 实例 的其他进程进行通信,以确保在并发数据访问期间数据的完整性。

客户端进程可以是任何理解 第 54 章 中描述的 PostgreSQL 协议的程序。许多客户端都基于 C 语言库 libpq,但协议存在多种独立的实现,例如 Java JDBC 驱动程序。

一旦建立连接,客户端进程就可以向其连接的后端进程发送查询。查询以纯文本形式传输,即客户端不进行解析。后端进程解析查询,创建一个 执行计划,执行该计划,然后通过已建立的连接将检索到的行传输回客户端。