コネクションプール
サーバ側からみたコネクションプール
MySQL などでは、max_connections が固定値で決まっている可能性がある。これを超えたアクセスをしようとすると ER_CON_COUNT_ERROR: Too many connections のようなエラーがはかれる。
code:sql
# コネクションプールの上限を確認したい場合
show variables like "%max_connections%";
# 現在接続しているプロセスを一覧したい場合
show processlist;
Tips: RDS とコネクションプール
Amazon Aurora では、インスタンスタイプ毎にデフォルトのコネクションプールが決まっている
クライアント側からみたコネクションプール
RDB に対するクライアントは、一般的にはコネクションプール をはって、それ経由でデータアクセスする。コネクションプールは、利用が終わったコネクションをプールしておき、次回利用時に再利用する、というもの。 コネクションプールが少なすぎる問題点は、以下があると思われる。
が、MySQL のそれは軽いらしいので要検証
そのクライアントが複数のクエリを同時並行で実行したい場合に、実行がシーケンシャルに制限される
コネクションプールの実装は、大抵その最大数が設定可能になっているので、クライアント数や同時実行数にあわせて適切に設定しなければ、パフォーマンスにも影響する。