日本語
[面接の質問] コネクションプールとは? (Feat. ChatGPT)

[面接の質問] コネクションプールとは? (Feat. ChatGPT)

DBコネクションプールに関する面接の質問まとめ

DBコネクションプールとは?

> DBに事前に接続しておいたオブジェクトをプールに保存 > クライアントからのリクエスト時に接続を貸し出す > 処理が終了したら接続を返却し、プールに再び保存

あらかじめ接続しておき、必要な時に取り出して使う形式の接続オブジェクトだと理解できるだろう。

使用する理由?

Java Springの場合、

  • DBに直接接続して処理する方式を使用する場合

  • 毎回JDBCドライバーをロードし、接続オブジェクトを取得する必要がある

  • リクエストのたびにドライバーのロード、オブジェクトの生成、接続が繰り返し行われる

→ 非常に非効率的であるため、このような問題を解決するためにConnection Poolを使用する。

+ その他のフレームワークでも使用されているという。

特徴

  • WAS実行時にConnectionオブジェクトをプールに事前に生成

  • HTTPリクエストに応じてオブジェクトを取得・使用・返却

  • 接続リクエストごとに接続や生成にかかる時間が消費されない → 接続負荷を軽減する効果がある

> - 同時接続者数がプールのオブジェクト数より多い場合は? > → 事前に生成された接続オブジェクトが不足すると、返却されるまで順番待ちとなる

> プールが大きくなるほど、メモリ消費量↑ 待機時間↓

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0