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

52.2. 连接的建立方式 #

PostgreSQL 实现了按用户进程的客户端/服务器模型。在此模型中,每个客户端进程都连接到一个后端进程。由于我们无法预先知道将建立多少个连接,因此我们必须使用监督进程,该进程在每次请求连接时都会生成一个新的后端进程。此监督进程称为邮局,并在指定的 TCP/IP 端口侦听传入连接。每当它检测到连接请求时,它就会生成一个新的后端进程。这些后端进程彼此通信并与实例的其他进程通信,使用信号量共享内存来确保在并发数据访问期间的数据完整性。

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

建立连接后,客户端进程可以向其连接到的后端进程发送查询。查询使用纯文本传输,即客户端不执行任何解析。后端进程解析查询,创建一个执行计划,执行计划,并将检索到的行通过已建立的连接传输给客户端。