PostgreSQL是什么
了解PostgreSQL之前,首先要有一个对它大概的概念。
PostgreSQL是一种对象关系型数据库,单节点单实例运行,对分布式支持有限。可以与广为人知的Mysql做类比来理解。
MySQL号称世界上最流行的数据库。
PostgreSQL号称世界上最先进的数据库。
组件名词解释
- libpq:数据库应用连接接口库(如JDBC,ODBC)
- Postmaster:守护监听进程
- Postgres:服务进程
PostgreSQL整体架构
PostgreSQL采用的是经典的C/S架构模型。
PostgreSQL架构.png运行流程分析
当一个前端数据库应用程序需要访问数据库:
- 调用libpq,将连接请求发送给Postmaster;
- Postmaster启用一个新的后端服务器进程postgres与前端应用连接;
- 服务进程Postgres直接与用户通信,不再通过Postmaster;
- Postgres接收客户端的命令请求,完成并返回结果;
客户端每创建一个数据库连接,postmaster就生成一个pstogres进程,是一种1:1的进程结构(一个客户端对应一个服务进程)。
多进程的好处在于:系统的各个模块,各个服务进程之间耦合度更低,多用户直接并发运行不受影响。
带来的影响是:多进程比多线程的结构开销要大,进程的创建和回收比线程更加消耗资源,当用户发来的请求过多时,会造成负载过大,执行速度变慢。
网友评论