データベース接続の流れと仕組みの基本
最終更新日: 2024-08-22記事投稿日: 2024-08-22
データベース接続の基本
データベース接続は、アプリケーションがデータベースと通信するための通路で、以下のステップが含まれます。
- ネットワーク接続の確立
- 認証
- セッションの初期化
この過程には一定の接続オーバーヘッドが伴うため、頻繁に接続を開いたり閉じたりすると、パフォーマンスに影響を与える可能性があります。
接続オーバーヘッド
データベース接続の確立には時間がかかります。
コネクションプーリングを使用することで、この接続オーバーヘッドを最小限に抑え、アプリケーションのパフォーマンスを向上させることができます。
コネクションプーリング
コネクションプーリングは接続オーバーヘッドを最小限に抑えデータベース接続を効率的に管理するための技術で、
以下のような特徴を持ちます。
- 事前に接続のプールを作成し、再利用する
- 新規接続の作成オーバーヘッドを削減
- リソースの効率的な利用を促進
重要なデータベース設定項目
- 最小接続数: プール内に常に維持される接続の最小数
- 最大接続数: プールが管理できる最大の接続数
- アイドル接続のタイムアウト: 未使用の接続(アイドル状態)が閉じられるまでの時間
- 最大接続持続時間: 接続が再利用される最大時間
アイドル接続のタイムアウト
長時間使用されていない接続は、リソースの無駄遣いとなります。
アイドル接続のタイムアウトを設定することで、未使用の接続を自動的に閉じ、リソースを解放できます。
最大接続持続時間
接続を長時間開いたままにすると、ネットワークの問題や他のリソースの競合が発生する可能性があります。
最大接続持続時間を設定することで、古い接続を定期的に閉じ、新しい接続に置き換えることができます。
適切な設定ができていない時に起こりうること
- アイドル接続のタイムアウト時間が極端に長い場合
接続の枯渇やリソースの浪費につながってしまいます。特にサーバーレス環境だとインスタンスが短命で頻繁にスケールアウトやスケールインが行われるため、スケーラビリティの問題が生じる可能性が高くなります。
- アイドル接続のタイムアウト時間が極端に短い場合
接続が頻繁に切断され、新たに接続を確立する必要があるため、接続オーバーヘッドの影響が大きくなり、パフォーマンスが低下してしまいます。
- 最大接続持続時間が極端に長い場合
不要な接続がリソースを占有し、データベースの接続数が上限に達する可能性があります。
- 最大接続持続時間が極端に短い場合
接続が頻繁に切断され、新たに接続を確立する必要があるため、接続オーバーヘッドの影響が大きくなり、パフォーマンスが低下してしまいます。