コネクションプーリングとは?
こねくしょんぷーりんぐ
コネクションプーリングとは、データベースへの接続(コネクション)をあらかじめ複数確立して再利用可能なプールとして管理する技術で、接続のたびに生じるオーバーヘッドを大幅に削減します。
コネクションプーリング(Connection Pooling)とは、アプリケーションとデータベースサーバーの間に「コネクションプール」という仕組みを設け、一定数のデータベース接続をあらかじめ確立してプールに蓄えておき、リクエストのたびにそれを使い回す技術です。
データベースへの接続(コネクション)確立は、TCP/IPのネゴシエーション・認証・セッション初期化など、複数のステップが必要でコストの高い処理です。特にWebアプリケーションのように毎リクエストごとにDBアクセスが発生する環境では、接続のたびにこのコストが積み重なり、レスポンスタイムを著しく悪化させます。
コネクションプーリングが解決する課題は次のとおりです。
- 接続オーバーヘッドの削減:事前確立済みの接続をリクエスト間で再利用するため、接続コストがほぼゼロになります。
- 同時接続数の制御:プールサイズを設定することで、DBサーバーへの過剰な同時接続を防ぎます。
- 接続の安定管理:切断された接続の自動再接続やヘルスチェックを行えます。
代表的な実装としては、Java向けのHikariCPやPgBouncer(PostgreSQL専用)、PHP-FPMの接続管理、Node.jsのpgライブラリ組み込みプールなどがあります。プールサイズは大きければよいわけではなく、DBサーバーのリソースやアプリの同時処理数に合わせてチューニングすることが重要です。
使い方・例文
Webアプリが同時に100リクエストを受けても、コネクションプールにある20本の接続を順番に使い回すことで、DBサーバーへの負荷を抑えつつ全リクエストを処理できます。
この用語をシェア
最終更新: