RDBまわりの備忘録
コネクションプーリング
- DBへの接続処理はオーバーヘッドの大きな処理なため、接続/切断処理を高頻度で繰り返すとCPUなどのリソースが過度に消費される問題がある
- コネクションプーリングは複数のDB接続を事前に行い、その接続結果(コネクション)を貯めておき(プール)、必要なときにプールからコネクションを取得してDBへの操作を行う
- プールからコネクションを取得する時点で接続処理が完了しているので処理速度が向上する
プリペアードステートメントキャッシュ
- Connectionオブジェクトをコネクションプールから取得
- Connection#prepareStatement() を実行
- バインド変数を設定
- SQL文を実行 (PreparedStatement#executeQuery()など)
- PreparedStatement#close() を実行
- Connectionオブジェクトをコネクションプールに返却
パフォーマンス向上の技法