आप एक किसी न किसी "नियम-सेट" के रूप में उपयोग कर सकते हैं:
हाँ, लगातार कनेक्शन का उपयोग, अगर:
- वहाँ केवल कुछ अनुप्रयोगों/उपयोगकर्ताओं डाटाबेस को ऐक्सेस, अर्थात् कर रहे हैं आप ऐसा नहीं करेंगे परिणामस्वरूप 200 खुले (लेकिन शायद निष्क्रिय) कनेक्शन हैं, क्योंकि एक ही होस्ट पर 200 अलग-अलग उपयोगकर्ता साझा किए जाते हैं।
- डेटाबेस किसी अन्य सर्वर है कि आप नेटवर्क पर एक्सेस कर रहे हैं पर चल रहा है
- एक (एक) आवेदन बहुत बार डेटाबेस तक पहुँचता है
नहीं, लगातार कनेक्शन का उपयोग नहीं करते हैं, यदि:
- आपके एप्लिकेशन को केवल 100 बार एक घंटे डेटाबेस तक पहुंचने की आवश्यकता है।
- आपके पास एक डेटाबेस सर्वर
- तक पहुंचने वाले कई वेबसर्वर हैं आप प्रीफ़ोर मोड में अपाचे का उपयोग कर रहे हैं। यह प्रत्येक बच्चे की प्रक्रिया के लिए एक कनेक्शन का उपयोग करता है, जो काफी तेजी से रैंप कर सकता है। (टिप्पणियों में @Powerlord के माध्यम से)
लगातार कनेक्शन का उपयोग करना काफी तेज़ है, खासकर यदि आप किसी नेटवर्क पर डेटाबेस तक पहुंच रहे हैं। यदि डेटाबेस एक ही मशीन पर चल रहा है तो यह इतना अंतर नहीं करता है, लेकिन यह अभी भी थोड़ा तेज़ है। हालांकि - जैसा कि नाम कहता है - कनेक्शन लगातार है, यानी यह खुला रहता है, भले ही इसका उपयोग न किया जाए।
समस्या यह है कि "डिफ़ॉल्ट कॉन्फ़िगरेशन" में, MySQL केवल 1000 समांतर "खुले चैनल" की अनुमति देता है। उसके बाद, नए कनेक्शन अस्वीकार कर दिए जाते हैं (आप इस सेटिंग को ट्विक कर सकते हैं)। तो यदि आपके पास - प्रत्येक 100 ग्राहक के साथ 20 वेबसर्वर हैं, और उनमें से प्रत्येक में प्रति घंटे केवल एक पृष्ठ पहुंच है, तो सरल गणित आपको दिखाएगा कि आपको डेटाबेस के लिए 2000 समानांतर कनेक्शन की आवश्यकता होगी। वह काम नहीं करेगा।
एर्गो: केवल अनुरोधों के लिए इसे बहुत से अनुरोधों के साथ उपयोग करें।
इसके अलावा, अगर आप प्रीफेर्क मोड में अपाचे का उपयोग कर रहे हैं तो लगातार कनेक्शन का उपयोग न करें।यह प्रत्येक बच्चे की प्रक्रिया के लिए एक कनेक्शन का उपयोग करता है, जो काफी तेजी से रैंप कर सकता है। – Powerlord
@BlaM, मुझे आपका अंतिम पैराग्राफ नहीं मिल रहा है। क्या लगातार कनेक्शन आपको उनका पुन: उपयोग करने की अनुमति नहीं देता है (यह पूरा बिंदु है?) तो आपको 2000 कनेक्शन की आवश्यकता नहीं है क्योंकि उनका पुन: उपयोग किया जाएगा? या आपका मतलब है ** प्रत्येक ग्राहक ** का एक अद्वितीय उपयोगकर्ता नाम है? फिर भी, पुराने कनेक्शन लगातार नए कनेक्शन के लिए रास्ता बनाने के लिए किए जाने पर बंद नहीं होंगे? – Pacerier
@Pacerier: मेरा मतलब क्लाइंट प्रत्येक के अपने उपयोगकर्ता नाम के साथ था। उस मामले में पुराने कनेक्शन ** ** ** नए कनेक्शन संभव बनाने के करीब नहीं होंगे, क्योंकि स्वीकृत कनेक्शन की ** सीमा ** को MySQL द्वारा प्रबंधित किया जाता है और कनेक्शन की दृढ़ता PHP पक्ष से प्रबंधित की जाती है - इसलिए PHP के अंत से डेटाबेस बस कनेक्ट करने की अनुमति नहीं देता है। यह नहीं जानता कि सीमा तक पहुंच गई थी और पुराने कनेक्शन बंद होने से मदद मिलेगी। – BlaM