here多くのオープンした接続の接続プールは、毎回新しい接続を開くよりも、システムにとってコストがかかりません。
から答えは典型的には、データベース接続を開くことは高価な操作であり、接続が 後で要求された場合、アクティブなものの一つを優先して使用されるようにので プールがアクティブな接続を維持します〜 別のものを開く。
私は、DB管理におけるConnection Pool
という概念を理解しています。それは "は〜です"という質問に対する答えです。すべての開発者がブログ、投稿、回答、チュートリアル、DB文書などをブログに投稿して、いつも "は何ですか"と答えています()。彼らは常に互いからテキストをコピー/ペーストするように。誰も "なぜそれなのですか" "と" how "について説明しようとしません。上記の答えがその例です。
私はたとえば、プール内の30開かれた接続を維持することは、それが必要なときに新しい接続を開くことよりも、システムの低コストであることも可能であるかなぜとを理解することはできません。
オーストラリアにはWebサーバーがあります。また、オレゴンのどこかの米国にあるAWSのDB。またはGB。またはどこからでもAUSから非常に遠い。だから、彼らは、20 -...開かれた接続のプールを保つことは、そのような場合毎回新しい接続を開くよりも、メモリとシステムのパフォーマンスにとってコストがかかりませんと言っています。どのようにすることができますか?どうして?
接続を確立するには、エンドポイント、メモリ割り当てなどの間で通信(ハンドシェイクと考える)が必要です。また、DBのやりとりを行うためにループを実行する場合、同じアクティブな接続を再利用する方がずっと優れていますループ内での開閉。 1つの接続を作成するためのわずかな違いがあっても、それはループで掛け合わされます。 –
グリーン、それは価値があるので、この質問を促した回答に追加情報を追加しました。http://stackoverflow.com/questions/4041114/what-is-database-pooling/4041136#4041136を参照してください。しかし、ミッチとマリアは基本的に正しいです。接続は瞬間的なプロセスではありません。 – paxdiablo