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

mysql_connect बनाम mysql_pconnect

MySQL के लिए लगातार कनेक्शन अनावश्यक होना चाहिए। अन्य डेटाबेस (जैसे ओरेकल) में, कनेक्शन बनाना महंगा और समय लेने वाला है, इसलिए यदि आप कनेक्शन का पुन:उपयोग कर सकते हैं तो यह एक बड़ी जीत है। लेकिन डेटाबेस के वे ब्रांड कनेक्शन पूलिंग की पेशकश करते हैं, जो समस्या को बेहतर तरीके से हल करता है।

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

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

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

कम से कम MySQL के लिए, लगातार कनेक्शन का नकारात्मक पक्ष शायद उनके लाभों से अधिक है। और उच्च मापनीयता प्राप्त करने के लिए अन्य, बेहतर तकनीकें हैं।

मार्च 2014 अपडेट करें:

आरडीबीएमएस के अन्य ब्रांडों की तुलना में MySQL कनेक्शन की गति हमेशा कम थी, लेकिन यह और भी बेहतर हो रही है।

देखें http://mysqlserverteam.com/improving-connectdisconnect-performance/

अधिक विवरण और गति तुलना के लिए ब्लॉग पढ़ें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या डेटाबेस इवेंट के लिए 'सुनने' और रीयल टाइम में पेज अपडेट करने का कोई तरीका है?

  2. MySQL त्रुटि 2006 (HY000) लाइन 406 पर:MySQL सर्वर चला गया है

  3. MySQL:बड़ा VARCHAR बनाम टेक्स्ट?

  4. नोड माइस्क्ल कॉल छोड़ने के बाद क्वेरी को एनक्यू नहीं कर सकता

  5. डेल्फी में एक मैसकल डेटाबेस से कनेक्ट करने का सबसे अच्छा तरीका क्या है?