PgBouncer简介及使用方法
一、PgBouncer简介
PgBouncer是为PostgreSQL数据库提供的一个轻量级连接池工具。PostgreSQL数据库是基于进程的架构,应用每次连接到PG,PG都会创建一个新的进程来为应用服务,服务完成之后,关闭连接,进程被销毁。频繁地创建、销毁进程开销很大,耗费资源。PgBouncer 连接池把与数据库的连接进行缓存,应用请求到来时,分配一个空闲的连接使用,应用执行完成后,连接不会直接关闭,而是被放入连接池,等待下次被使用,这样降低了资源的消耗,提高了系统性能。
二、PgBouncer支持三种连接池模型
- session,会话级连接,在客户端连接的生命周期内,连接池分配一个连接给它,直到客户端断开连接,分配的连接才会回到连接池中。
- transaction,事务级连接,当客户端的每个事务结束时,数据库连接被释放到连接池中,再次执行一个事务时,需要再从连接池获取一个连接。
- 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