web-dev-qa-db-ja.com

pgbouncerでトランザクションプーリングを使用する利点は何ですか?

トランザクションプーリングとセッションプーリングにpgbouncerを使用することの長所/短所の良い要約を見つけるのに苦労しています。

トランザクションの重いワークロードが何らかの形で負荷分散されていることを意味しますか? pgbouncerからデータベースに接続するために必要な接続をできるだけ多く防ぐためですか?

29
dlamotte

アイドルセッションを保持するアプリがある場合は、トランザクションレベルのプーリングが役立ちます。 PgBouncerは、セッションを開いてアイドル状態に保つ必要はなく、新しいトランザクションが開始されたときにセッションを取得するだけです。これらのアイドルセッションは、pgbouncer接続にのみコストがかかり、バックエンドがメモリの浪費と同期オーバーヘッドを何も行わない実際のアイドルPgセッションではありません。

トランザクションプーリングの代わりにセッションプーリングが必要な主な理由は、名前付きプリペアドステートメント、アドバイザリロック、リッスン/通知、またはトランザクションレベルではなくセッションレベルで動作するその他の機能を使用する場合です。

34
Craig Ringer