2012-03-21 12 views
34

मैं अपने PHP अनुप्रयोग में पीडीओ का उपयोग कर रहा हूं। यह एक ही सर्वर पर एक MySQL सर्वर से कनेक्ट:पीडीओ कनेक्शन का निर्माण क्यों धीमा है?

$db = new PDO(mysql:host=localhost;dbname=test, $username, $password); 

मैं एक ही निर्गम (सादे html में कुछ डमी डेटा), जिनमें से एक पीडीओ बनाने के लिए कॉल शामिल साथ दो पृष्ठों बनाया। यदि मैं उस पृष्ठ को खोलता हूं जो कनेक्शन का उपयोग नहीं करता है तो प्रतिक्रिया 0.5 और 1 सेकंड के बीच तेज होती है।

+0

कनेक्शन के बिना डेटाबेस से डेटा कैसे प्राप्त करते हैं? – deceze

+0

डमी डेटा कुछ सादा HTML है, डेटाबेस से कुछ भी नहीं। –

+1

वह प्रभाव सामान्य नहीं है। ऐसा लगता है कि आपके पास सर्वर से संबंधित समस्याएं हैं। शायद एसक्यूएल सर्वर प्रतिक्रिया देने में धीमा है। अधिक जांच करने की कोशिश करें, लेकिन मेरे लिए यह सर्वरफॉल्ट समस्या की तरह लगता है। –

उत्तर

77

मैं कुछ googling कर रहा है, और this thread पढ़ने के बाद, मैंने localhost127.0.0.1 बदल दिया। इससे समस्या हल हो जाती है ....

+2

पर $ host = gethostbyname ('localhost') भी देखें, आपने मेरा दिन बनाया! स्थानीयहोस्ट का उपयोग करके इसे 127.0.0.1 का उपयोग करके कनेक्ट करने के लिए एक दूसरा सेकंड लिया गया, इसमें लगभग एक मिलीसेकंड लग रहा है। – CodeZombie

+1

बहुत उपयोगी शोध। मैंने इस सहायता के लिए समाधान खोजने की कोशिश की। 1 से घटाकर 3ms से कम हो गया। –

+8

थोड़ा 'क्यों': होस्टनाम का उपयोग करके, PHP को DNS तालिका (धीमा!) में एक लुकअप करने के लिए मजबूर होना पड़ता है। यदि यह एक बड़ी मेज है, तो प्रवेश मिलने से पहले इसमें काफी समय लग सकता है। एक स्थिर आईपी पते का उपयोग करके आप इस हल को पूरी तरह से छोड़ सकते हैं। आप इसे गैर-लोकलहोस्ट आईपी के साथ उत्पादन में भी कर सकते हैं! – Gerben

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