返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

42.2. 连接是如何建立起来的

发布于 2019-09-30 03:12:39 字数 569 浏览 958 评论 0 收藏 0

PostgreSQL 是用一个简单的"每用户一进程"的 client/server 模型实现的。在这种模式里一个客户端进程只与恰好一个服务器进程连接。因为不知道具体要建立多少个连接,所以不得不利用一个主进程在每次连接请求时派生出一个新的服务器进程来。这个主进程叫做 postgres ,它监听着一个特定的 TCP/IP 端口等待进来的连接。每当检测到一个连接请求时,postgres 进程派生出一个新的服务器进程。服务器进程之间使用信号灯共享内存进行通讯,以确保在并发的数据访问过程中的数据完整性。

客户端进程可以是任何理解 PostgreSQL 协议(在 章44里描述)的程序。许多客户端都是基于 C 语言库 libpq 的程序,但是也存在几个对协议之独立的实现,比如 Java JDBC 驱动。

一旦建立起来连接,客户端进程就可以向后端(服务器)进程发送查询了。查询是通过纯文本传输的,也就是说在前端(客户端)不做任何分析处理。服务器分析查询,创建执行规划,执行该规划并且通过已经建立起来的连接把检索出来的数据行返回给客户端。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文