↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
预发布版本文档。 PostgreSQL 19beta4 为测试版本,最终发布内容可能有所不同。

51.2. 连接是如何建立的 #

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

客户端进程可以是任何理解 PostgreSQL 协议(见第 54 章)的程序。很多客户端基于 C 语言库 libpq,但该协议也有若干独立实现,例如 Java 的 JDBC 驱动。

一旦连接建立起来,客户端进程就可以向它所连接的后端进程发送查询。查询以纯文本方式传输,也就是说,客户端不进行解析。后端进程会解析查询,创建一个执行计划,执行该计划,并通过已建立的连接把检索到的行返回给客户端。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.