# PgBouncer
PostgreSQL向けの軽量プロキシ型[[コネクションプーリング]]ソフトウェア。アプリケーションサーバとPostgreSQLサーバのあいだに配置し、接続を管理・プーリングする。
## 特徴
- **イベント駆動モデル**(libevent使用)を採用しており、プールの数だけプロセスをPreforkする[[Pgpool]]と比べて軽量で効率がよい
- [[コネクションプーリング]]の機能に特化しており、機能は少ないがシンプル
- PostgreSQLは1接続=1プロセスで接続オーバヘッドが大きいため、PgBouncerとの併用が一般的
## 実績
- Instagram がデータベース接続管理に採用("What Powers Instagram" より)
- PostgreSQL + PgBouncer の組み合わせはWebシステムで広く使われるスタンダードな構成
## [[Pgpool]] との比較
| | PgBouncer | Pgpool |
|---|---|---|
| アーキテクチャ | イベント駆動(軽量) | Preforkモデル |
| 機能 | コネクションプーリングに特化 | 高機能(レプリケーション・ロードバランシング等) |
| 用途 | 軽量・シンプルな接続管理 | 多機能が必要な場面 |
## 関連
- 概念: [[コネクションプーリング]] / [[データベース接続モデル]]
- 関連製品: [[Pgpool]]
- 一次出典: [[@2015__yuuk.io__architecture-of-database-connection]]