PostgreSQL基本架构

PostgreSQL是什么

了解PostgreSQL之前,首先要有一个对它大概的概念。

PostgreSQL是一种对象关系型数据库,单节点单实例运行,对分布式支持有限。可以与广为人知的Mysql做类比来理解。

MySQL号称世界上最流行的数据库。
PostgreSQL号称世界上最先进的数据库。

组件名词解释

  • libpq:数据库应用连接接口库(如JDBC,ODBC)
  • Postmaster:守护监听进程
  • Postgres:服务进程

PostgreSQL整体架构

PostgreSQL采用的是经典的C/S架构模型。

PostgreSQL基本架构_第1张图片
PostgreSQL架构.png

运行流程分析

当一个前端数据库应用程序需要访问数据库:

  • 调用libpq,将连接请求发送给Postmaster;
  • Postmaster启用一个新的后端服务器进程postgres与前端应用连接;
  • 服务进程Postgres直接与用户通信,不再通过Postmaster;
  • Postgres接收客户端的命令请求,完成并返回结果;

客户端每创建一个数据库连接,postmaster就生成一个pstogres进程,是一种1:1的进程结构(一个客户端对应一个服务进程)。

多进程的好处在于:系统的各个模块,各个服务进程之间耦合度更低,多用户直接并发运行不受影响。

带来的影响是:多进程比多线程的结构开销要大,进程的创建和回收比线程更加消耗资源,当用户发来的请求过多时,会造成负载过大,执行速度变慢。

你可能感兴趣的:(PostgreSQL基本架构)