PostgreSQL 实现了一个“每个用户一个进程” 的客户端/服务器模型。在这个模型中,每个客户端进程 都连接到一个后端进程。由于我们事先不知道将建立多少连接,因此我们必须使用一个“监控进程”,每次请求连接时,它都会生成一个新的后端进程。这个监控进程称为postmaster,并在指定的 TCP/IP 端口上监听传入连接。每当它检测到连接请求时,它就会生成一个新的后端进程。这些后端进程彼此之间以及与实例的其他进程使用信号量和共享内存进行通信,以确保在并发数据访问期间的数据完整性。
客户端进程可以是任何理解第 53 章中描述的PostgreSQL协议的程序。许多客户端都基于 C 语言库libpq,但也存在一些独立的协议实现,例如 Java JDBC 驱动程序。
一旦建立连接,客户端进程就可以将其连接到的后端进程发送查询。查询使用纯文本传输,即客户端不进行解析。后端进程解析查询,创建执行计划,执行该计划,并通过在已建立的连接上传输检索到的行将它们返回给客户端。
如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用此表单 报告文档问题。