Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कनेक्शन पूलिंग बनाम लगातार कनेक्शन mysqli

असल में शब्द कनेक्शन पूलिंग और लगातार कनेक्शन mysqli . के मामले में इसी बात का संदर्भ लें पीएचपी में।

लगातार कनेक्शन इस मामले में PHP स्क्रिप्ट से खुले MySQL कनेक्शन को संदर्भित करता है जो स्क्रिप्ट के निष्पादन के बाद खुला रहता है, कुछ बाद के निष्पादन में फिर से उपयोग करने के लिए।

कनेक्शन पूलिंग इसका मतलब है कि PHP द्वारा बनाए रखा गया लगातार कनेक्शन का एक पूल है। इस पूल से एक निष्क्रिय कनेक्शन PHP स्क्रिप्ट को दिया जाता है जो MySQL से जुड़ना चाहता है और स्क्रिप्ट समाप्त होने पर पूल में वापस आ जाता है।

आपको आश्चर्य हो सकता है कि हमें MySQL कनेक्शन के पूल की आवश्यकता क्यों है, हम सभी स्क्रिप्ट के लिए केवल एक सतत कनेक्शन का उपयोग क्यों नहीं करते?

इसके दो कारण हैं:

  • PHP host/port/username/password के आधार पर MySQL कनेक्शन का एक पूल बनाता है उपयोग किया गया। यदि एक स्क्रिप्ट कुछ host/port/username/password . के साथ MySQL से जुड़ना चाहती है संयोजन, PHP निष्क्रिय लगातार कनेक्शन की खोज करता है जिसमें समान मान होते हैं। यदि यह नहीं मिलता है, तो इस host/port/username/password के साथ एक नया लगातार कनेक्शन बनाया जाता है संयोजन। इसलिए हमें कम से कम उतने ही अलग-अलग लगातार कनेक्शन चाहिए जितने अलग-अलग हैं host/port/username/password सभी लिपियों द्वारा उपयोग किए गए मान।
  • आप एक ही समय में एक MySQL कनेक्शन पर दो SQL कमांड निष्पादित नहीं कर सकते। यह तब हो सकता है जब दो PHP स्क्रिप्ट एक साथ निष्पादित हो रही हों। जब दो स्क्रिप्ट एक ही समय में MySQL के साथ संचार करना चाहते हैं, तो दो लगातार MySQL कनेक्शन बनाए जाते हैं। पूल में लगातार कनेक्शन की संख्या निष्पादित की गई अधिकतम समानांतर PHP स्क्रिप्ट की अंतिम संख्या के बराबर है, या php.ini में सेट की गई ऊपरी सीमा के बराबर है। ।

महत्वपूर्ण सूचना:

MySQL कनेक्शन पूल (और कोई अन्य कनेक्शन पूल) केवल तभी मौजूद हो सकता है जब PHP वेब सर्वर प्लगइन के रूप में क्रियान्वित हो रहा हो . जब PHP निष्पादन योग्य स्क्रिप्ट निष्पादन के बाद समाप्त हो जाता है, तो पूल फास्ट-सीजीआई मोड में या किसी अन्य तरीके से काम नहीं करते हैं।

संपादित करें:यदि वेब सर्वर एकाधिक अनुरोधों के लिए एक PHP फास्ट-सीजीआई प्रक्रिया का पुन:उपयोग करने के लिए कॉन्फ़िगर किया गया है तो MySQL कनेक्शन पूलिंग का उपयोग PHP के फास्ट-सीजीआई मोड में किया जा सकता है। यदि PHP फास्ट-सीजीआई प्रक्रिया को एक अनुरोध की सेवा के बाद बाहर निकलने के लिए कॉन्फ़िगर किया गया है तो उसके सभी MySQL कनेक्शन बंद हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql:ग्रांट रीड ओनली ऑप्शंस?

  2. कुंजी मान जोड़े को संग्रहीत करने वाली तालिका से चयन करने के लिए एक MySQL क्वेरी की आवश्यकता है

  3. क्या मैं डिफ़ॉल्ट पेजिनेशन को ओवरराइड किए बिना कस्टम क्वेरी को पेजिनेट कर सकता हूं?

  4. क्या मुझे query_cache_size के लिए जगह बनाने के लिए अपने innodb_buufer_pool _size/RAM का त्याग करना चाहिए?

  5. मौजूदा फ़ील्ड के आधार पर कॉलम अपडेट करना