# 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]]