【こねくしょんぷーりんぐ】
コネクションプーリング とは?
💡 DB接続を「使い回す」仕組み
📌 このページのポイント
- 接続の確立はTCPハンドシェイク+認証で数十ms〜数百msかかる
- プールに接続を保持して再利用することでレスポンス時間を短縮
- 最小接続数、最大接続数、アイドルタイムアウトの設定が重要
- PgBouncer(PostgreSQL)やHikariCP(Java)が代表的
なぜ毎回接続するのはダメなの?
プールのサイズはどう決める?
サーバーレスとの相性は?
コネクションリークって何?
取得した接続をプールに返却し忘れること。try-finallyやtry-with-resourcesで確実にcloseしないと、プールの接続が枯渇して新しいリクエストが処理できなくなる。HikariCPはリーク検出機能(leakDetectionThreshold)があって、一定時間返却されない接続をログに出してくれるよ
まとめ:ざっくりこれだけ覚えればOK!
「コネクションプーリング」って出てきたら「DB接続を使い回してパフォーマンスを上げる仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Connection Pooling」 = 接続のプール管理
💬 Pool(溜め池)に接続をためておいて、必要な時に取り出して使うイメージだよ