接続プール
最初から接続した状態を用意しておくよ
使いたい人には、接続した状態を貸し出すよ
接続にかかる負担を減らすための仕組みだよ
簡単に書くよ
接続プール(読:セツゾクプール 英:connection pool)とは
ゲストカード貸出型接続方式のこと。
もう少し具体的に書くと
接続した状態を最初からいくつか用意しておいて、何か用事がある人にはその接続を貸してあげることで、いちいち接続する手間を減らす機能のこと
です。
詳しく書くよ
サクっと一言で説明すると
あらかじめ接続した状態を用意しておいて、それを貸し出すことで、使うときに接続する手間を減らす機能
が「接続プール」です。
「コネクションプール」とも呼ばれます。
……と、いきなり言われても、分かりませんよね。
そもそも「接続した状態」ってなんだよ!と思う方もいるでしょう。
大丈夫です。
順番に見ていきましょう。
例えば、そうですね。
ここにピヨ太君が所有するピヨピヨビルが ありました。
ピヨピヨビルはセキュリティばっちりです。
ビルの中を移動するときは身分証明書代わりのカードが必要です。
ピッってやることで、はじめてドアが開きます。
カードは、入口のところにいる警備員さんに身分証明書を見せると作ってもらえます。
警備は結構ザルです。
身分証明書さえ見せれば、あっさり作ってくれます。
カードがあればビル内の移動は自由にできます。
ただし、カードの持ち出しはできません。
ビルから出るときは警備員さんに返すことになります。
返されたカードは捨てられます。
そして、それで終わりです。
過去にカードを作ったことがあっても関係ありません。
もう一度ビルに入りたくなったら、再び身分証明書を見せてカードを作ってもらう必要があります。
セキュリティ的には安全ですが、少し面倒くさいですね。
利用者の皆様方から「出入りするのに時間が掛かってイヤなんですけどー!」と苦情が出ました。
警備員さんからも「ぶっちゃけ、カードを作るのが面倒くさいっすよー」と泣きが入りました。
ですが、実際問題、カードは必要です。
「セキュリティは気にしないよ。誰でもウェルカム!」にしたとしても必要なのです。
なぜなら、カードがないとドアが開かないからです。
ビル内の移動ができません。
どうしようかピヨ太君は考えます。
足りない頭を必死に絞って考えます。
頭から煙が出るくらい考えました。
そして、ついに閃いたのです。
ピヨ太君は言いました。
「よし、ゲストカードを作ろう!」と。
ピヨ太君は警備員さんに依頼して、5枚のゲストカードを作りました。
ビルに入りたい人には、このゲストカードを貸し出すことにしたのです。
ゲストカードの管理は警備員がやります。
これでビルに入りたい人は、身分証明書を見せたりなんだりの手続きがなくなって楽になりました。
警備員さんもカードを作る手間がなくなりました。
ゲストカードが紛失しないように管理すれば、それで十分です。
残念ながら、その分の弊害も出ましたけどね。
例えば、ゲストカードは5枚しかありません。
ですから、5枚とも貸し出されているときはビルに入れません。
誰かがゲストカードを返却してくれるまで、6人目は待つ必要があります。
えっ?
ゲストカードをもっと増やせ?
確かにゲストカードの数を増やせば解決する問題ではあります。
ですが、今度は警備員さんがゲストカードを管理する手間が増えてしまいます。
ビルに入る人には喜んでもらいたいですが、警備員さんたちに必要以上の負担を掛けたくもありません。
ピヨ太君としては悩ましいところですね。
弊害はともかくとして、このようなゲストカード貸出方式で接続させるやり方が接続プールです。
必要なもの(ゲストカード:接続した状態)をあらかじめ用意しておいて、それを貸し出すことで、負荷(カード作成の手続き:接続処理)を軽減するための仕組みです。
もう少しコンピュータに近い例も見てみましょう。
今度はデータベースさんに登場してもらいます。
データベースを利用するときは、データベースに接続します。
使い終わったら切断します。
……これだと少しイメージしにくいですね。
言い方を変えましょう。
データベースを利用するときは、データベースの壁に穴を開けます。
穴を開けたら、穴から壁の向こうに、つまりデータベースの中に上半身を突っ込んであれやこれと作業をします。
データベースを使い終わったら、上半身を穴から出します。
その後、開いていた穴を閉じます。
これがデータベース接続の一般的な流れです。
ただし、壁に穴を開けたり閉じたりするのは結構大変です。
接続するという行為には、それなりの負荷がかかるのです。
そこで、あらかじめ壁に、いくつかの穴を開けておく方法が生み出されました。
壁には最初から穴が開いています。
ということは、いきなり上半身を突っ込めますね。
接続するときの手間(穴を開ける行為)を省けます。
使い終わったら穴から上半身を引っこ抜きます。
ただし穴は塞ぎません。
開いた状態で残します。
このようなやり方にすれば、穴を開けたり塞いだりする手間が軽減されます。
また、穴は使いまわします。
「同時に」使う人の数が穴の数を超えなければ、使う人が多くなっても問題ありません。
このようなやり方・仕組み・機能が接続プールです。
接続をプール(蓄える)することで、接続に関する負荷を軽減する狙いです。
穴の数には限りがあるので、穴の数より使いたい人の数が多くなったら順番待ちが発生しますけどね。
実際には条件次第でデメリットもあったりします。
あとの細かいことは専門的に解説しているところで情報を補完してください。
一言でまとめるよ
まぁ「接続プール」って単語が出てきたら「接続した状態を用意しておいて、それを貸し出しますよ機能なんだな~」と お考えください。






