2010-03-14 12 views
6

यदि मेरे पास एक स्क्रिप्ट है जो डेटा डालने के बाद बाहर निकलती है, तो स्क्रिप्ट एक ही समय में या 2 मिनट के भीतर 100 उपयोगकर्ताओं द्वारा खोली जाएगी।php pconnect बनाम कनेक्ट

(वास्तव में मैं कर रहा हूँ ईमेल ट्रैकिंग।)

तो pconnect बेहतर है, या कनेक्ट संसाधन कम करने के लिए बेहतर है?

मेरे पास डालने के बाद बंद है।

+0

[mysql \ _connect VS mysql \ _pconnect] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/247807/mysql-connect-vs-mysql-pconnect) – rubo77

उत्तर

4

mysql_pconnect() एक पूल में खुले कनेक्शन को छोड़ देता है जिसका उपयोग किसी भी अन्य अनुरोध द्वारा उसी प्रक्रिया के लिए किया जा सकता है। इस प्रकार, प्रत्येक कर्मचारी जब तक मर जाता है तब कनेक्शन खुलता रहता है। यदि आप श्रमिकों की संख्या कम रखते हैं, तो यह स्वीकार्य हो सकता है, लेकिन जैसे ही आप श्रमिकों की संख्या बढ़ाते हैं, तो आप mysql_connect() पर स्विच करने से बेहतर होते हैं। प्रति अनुरोध थोड़ा अधिक समय लेगा क्योंकि कनेक्शन हर बार किया जाना चाहिए, लेकिन आप केवल अनुरोधों के रूप में कई कनेक्शन बनाएंगे, श्रमिक नहीं।

+1

हाँ, मेरी स्क्रिप्ट केवल अनुरोध के लिए है, इसलिए यदि मेरे पास 1000 से अधिक पीपीएल स्क्रिप्ट खोलें और इसे 5 मिनट के बीच चलाएं, यह बेहतर mysql_connect का उपयोग कर रहा है? – user192344

+1

यदि 5 मिनट से अधिक 1000 लोग हैं, और आपकी स्क्रिप्ट औसतन 100 एमएमएस लेती है, तो औसत पर 0.3 समवर्ती उपयोगकर्ता है, जो कुछ ऐसा है जो आप शायद अपने माइक्रोवेव में एम्बेडेड कंप्यूटर से संभाल सकते हैं। – Evert

2

कनेक्ट कम संसाधनों का उपयोग करता है (वेब ​​सर्वर के निष्क्रिय उदाहरण डेटाबेस कनेक्शन को खोलने की आवश्यकता नहीं है), लेकिन पैकनेक्ट थोड़ा तेज़ है (नया कनेक्शन खोलने की ज़रूरत नहीं है, यह पहले से मौजूद है)।

+0

तो यदि कम संसाधन की आवश्यकता है, कनेक्ट का उपयोग करने के लिए बेहतर है? क्योंकि मुझे खुले कनेक्शन के बारे में चिंता है – user192344

+0

हाँ यह सही है .. – user262976

+1

"थोड़ा तेज" इसका क्या अर्थ है? यदि आप 1000 अनुरोध शुरू करते हैं तो क्या आप अंतर देखेंगे? – rubo77

0

आप pconnect उपयोग करते हैं, आप स्क्रिप्ट इस तरह का है कि 100 चलाता है के साथ सोने मोड पर बहुत-से संपर्क करना होगा 2 मिनट में बार और आपका mysql मर जाएगा।

आप उपयोग कर सकते हैं mysql_connect() , mysql_close()

-1

mysql_pconnect(): डेटाबेस के साथ स्थायी संबंध नहीं है। इस प्रकार के ऑपरेशन के दौरान आप अपना कनेक्शन खो नहीं सकते।

mysql_connect(): बड़ी संख्या में ऑपरेशन के कारण आप कनेक्ट कनेक्शन को सामान्य तरीके से कनेक्ट कर सकते हैं क्योंकि आप अपने कनेक्शन को खो सकते हैं।

मैं डेटाबेस कनेक्शन के लिए mysql_pconnect() का सुझाव देता हूं।

+0

डेटाबेस कनेक्शन की बात आने पर स्थायी जैसी कोई चीज़ नहीं है। पीकनेक्ट में "पी" लगातार रहता है; यानी जब अनुरोध हैंडलिंग खत्म हो जाता है (या जब कार्यकर्ता मर जाता है) तो कनेक्शन खुद को नहीं हटाया जाता है। AFAIK, यह केवल एक वेबसर्वर संदर्भ में प्रासंगिक है। –