PgBouncer简介及使用方法

一、PgBouncer简介

PgBouncer是为PostgreSQL数据库提供的一个轻量级连接池工具。PostgreSQL数据库是基于进程的架构,应用每次连接到PG,PG都会创建一个新的进程来为应用服务,服务完成之后,关闭连接,进程被销毁。频繁地创建、销毁进程开销很大,耗费资源。PgBouncer 连接池把与数据库的连接进行缓存,应用请求到来时,分配一个空闲的连接使用,应用执行完成后,连接不会直接关闭,而是被放入连接池,等待下次被使用,这样降低了资源的消耗,提高了系统性能。

二、PgBouncer支持三种连接池模型

  1. session,会话级连接,在客户端连接的生命周期内,连接池分配一个连接给它,直到客户端断开连接,分配的连接才会回到连接池中。
  2. transaction,事务级连接,当客户端的每个事务结束时,数据库连接被释放到连接池中,再次执行一个事务时,需要再从连接池获取一个连接。
  3. statement,语句级连接,执行完一个SQL语句,数据库连接就会被释放到连接池中,再次执行一个SQL语句,需要再从连接池获取一个连接,这种模式意味着客户端强制autocommit模式。

三、安装PgBouncer

3.1 yum install 安装

yum install -y pgbouncer

3.2 源码编译安装

源码地址:

https://github.com/pgbouncer/pgbouncer

git clone https://github.com/pgbouncer/pgbouncer.git cd pgbouncer git submodule init git submodule update ./autogen.sh ./configure ... make make install