बीच में एक डेटाबेस प्रॉक्सी के साथ, "कनेक्शन" के लिए दो अलग-अलग पैर होते हैं:
- सबसे पहले, एप्लिकेशन से प्रॉक्सी के लिए एक कनेक्शन है। जिसे आपने "एप्लिकेशन साइड पूलिंग" कहा है, वह इस प्रकार का कनेक्शन है। चूंकि इस प्रकार के कनेक्शन का एक नया उदाहरण बनाने के साथ अभी भी ओवरहेड जुड़ा हुआ है, इसलिए आपके एप्लिकेशन में कनेक्शन पूल का उपयोग जारी रखना शायद एक अच्छा विचार है।
- दूसरा, प्रॉक्सी से डेटाबेस के लिए एक कनेक्शन है। ये कनेक्शन प्रॉक्सी द्वारा प्रबंधित किए जाते हैं। इस प्रकार के कनेक्शन की संख्या प्रॉक्सी कॉन्फ़िगरेशन द्वारा नियंत्रित होती है। यदि आप इस कॉन्फ़िगरेशन को 100% पर सेट करते हैं, तो आप प्रॉक्सी को डेटाबेस के
max_connections
मूल्य , और अन्य क्लाइंट कनेक्शन के लिए भूखे रह सकते हैं।
इसलिए, जब आपका एप्लिकेशन कनेक्शन का उपयोग करना चाहता है, तो उसे अपने स्थानीय पूल से कनेक्शन प्राप्त करने की आवश्यकता होती है। फिर, प्रॉक्सी को डेटाबेस से कनेक्शन के साथ जोड़ना होगा। जहां संभव हो प्रॉक्सी डेटाबेस से कनेक्शन का पुन:उपयोग करेगा (इस तकनीक को मल्टीप्लेक्सिंग )।
या, आधिकारिक डॉक्स को उद्धृत करते हुए:"आप प्रॉक्सी के लिए एक साथ कई कनेक्शन खोल सकते हैं, और प्रॉक्सी डीबी इंस्टेंस या क्लस्टर के लिए कम संख्या में कनेक्शन को खुला रखता है। ऐसा करने से डेटाबेस सर्वर पर कनेक्शन के लिए मेमोरी ओवरहेड कम हो जाती है। यह तकनीक "बहुत अधिक कनेक्शन" त्रुटियों की संभावना को भी कम करती है।