2010-09-22 17 views
6

मेरी साइट ने हमेशा मेरी समझ के आधार पर लगातार कनेक्शन का उपयोग किया है, इसका कोई कारण नहीं है। जब कनेक्शन का पुन: उपयोग किया जा सकता है तो कनेक्शन बंद क्यों करें? मेरे पास एक साइट है जो कुल मिलाकर लगभग 7 डेटाबेस तक पहुंचती है। यह एक बड़ी यातायात साइट नहीं है, लेकिन यह काफी बड़ा है। लगातार आप क्या लेते हैं, क्या मुझे उनका उपयोग करना चाहिए?लगातार बनाम गैर-निरंतर - मुझे किस का उपयोग करना चाहिए?

उत्तर

9
लगातार कनेक्शन के साथ

:

  • आप लेनदेन प्रसंस्करण निर्माण नहीं कर सकते प्रभावी रूप से उपयोगकर्ता सत्र एक ही कनेक्शन
  • एप्लिकेशन पर असंभव
  • स्केलेबल नहीं हैं। समय के साथ आपको इसे विस्तारित करने की आवश्यकता हो सकती है और इसके लिए लगातार कनेक्शन के प्रबंधन/ट्रैकिंग की आवश्यकता होगी
  • यदि स्क्रिप्ट, किसी भी कारण से, तालिका पर लॉक जारी नहीं कर सका, तो कोई भी निम्न स्क्रिप्ट अनिश्चित काल तक अवरुद्ध हो जाएगी और किसी को फिर से शुरू करना चाहिए डीबी सर्वर। लेन-देन का उपयोग करना, लेन-देन ब्लॉक भी अगले स्क्रिप्ट को पारित करेंगे (एक ही कनेक्शन का उपयोग कर) स्क्रिप्ट निष्पादन समाप्त हो जाती है, तो इससे पहले कि लेन-देन ब्लॉक पूरा करता है, आदि

लगातार कनेक्शन कुछ भी आप गैर लगातार कनेक्शन के साथ क्या कर सकते हैं नहीं लाते ।
फिर, उनका उपयोग क्यों करें, बिल्कुल?
एकमात्र संभावित कारण प्रदर्शन है, उनका उपयोग करने के लिए जब आपके SQL सर्वर से लिंक बनाने का ओवरहेड उच्च होता है। ,

  • डेटाबेस प्रकार
  • कि क्या MySQL सर्वर एक ही मशीन पर है और यदि नहीं, तो कितनी दूर: और इस तरह कई कारकों पर निर्भर? आपके स्थानीय नेटवर्क/डोमेन से बाहर हो सकता है?
  • कितना अन्य प्रक्रियाओं के द्वारा अतिभारित मशीन जिस पर MySQL

एक बैठता है हमेशा गैर लगातार कनेक्शन के साथ लगातार कनेक्शन बदल सकते हैं। यह स्क्रिप्ट के प्रदर्शन को बदल सकता है, लेकिन इसका व्यवहार नहीं!

वाणिज्यिक RDMS समवर्ती खोला कनेक्शन की संख्या द्वारा लाइसेंस प्राप्त किया जा सकता है और यहां लगातार कनेक्शन पर MySql वाणिज्यिक उपयोग के लिए नि: शुल्क नहीं किया जा रहा जानकारी के लिए

+0

+1 misserve कर सकते हैं। मुझे आश्चर्य है कि कितने लोगों को इसका एहसास नहीं है। हालांकि, लाइसेंस के लिए भुगतान बहुत सस्ता है। – NotMe

+0

बकवास मुझे यह नहीं पता था ... मुझे उसमें देखना होगा, धन्यवाद। – Webnet

+0

क्या कोई तरीका है कि मैं कनेक्शन स्थापित/बंद करने के ओवरहेड को ट्रैक कर सकता हूं? मुझे बहुत सारे कनेक्शन शामिल त्रुटियां मिलती हैं इसलिए मैं सोच रहा हूं कि लगातार समस्या का हिस्सा है या नहीं। जब आप लेनदेन कहते हैं तो आपका क्या मतलब है, सिर्फ प्रश्न? – Webnet

1

इस क्षेत्र पर मेरा ज्ञान थोड़े सीमित है इसलिए मैं आपको इस विषय पर कई विवरण नहीं दे सकता, लेकिन जहां तक ​​मुझे पता है, कनेक्शन बनाने और उन्हें थ्रेड पर सौंपने की प्रक्रिया वास्तव में संसाधनों को खर्च करती है, इसलिए मैं चाहता हूं अगर मैं तुम थे तो इससे बचें। किसी भी तरह मुझे लगता है कि इनमें से अधिकतर निर्णयों को सामान्यीकृत नहीं किया जा सकता है और व्यापार पर निर्भर करता है।

यदि, उदाहरण के लिए, आपका एप्लिकेशन डाटाबेस के साथ लगातार संचार करता है और एप्लिकेशन बंद होने पर ही रुक जाएगा, तो शायद पहले से जुड़े प्रक्रिया से बचने के लिए लगातार कनेक्शन चलने का तरीका है।

हालांकि, यदि आपका एप्लिकेशन केवल मामूली जानकारी प्राप्त करने के लिए डाटाबेस के साथ संचार करता है तो कनेक्शन बंद करना अधिक सचेत हो सकता है, क्योंकि आप उपयोग किए जा रहे खुले कनेक्शन पर संसाधन बर्बाद नहीं करेंगे।

इसके अलावा "कनेक्शन पूलिंग" नामक एक तकनीक भी है, जिसमें आप कनेक्शन की एक श्रृंखला बनाते हैं और उन्हें अन्य अनुप्रयोगों के उपभोग के लिए वहां रखते हैं। इस मामले में कनेक्शन डेटाबेस के लिए लगातार हैं लेकिन अनुप्रयोगों के लिए लगातार नहीं हैं।

नोट: एमएसएसक्यूएल में कनेक्शन हमेशा डेटाबेस के लिए लगातार रहते हैं क्योंकि कनेक्शन पूलिंग डिफ़ॉल्ट व्यवहार है।

संबंधित मुद्दे