2012-02-10 11 views
8

मैंने पीडीओ कक्षा को एक साधारण डीबी कक्षा बनाने के लिए बढ़ाया है और वर्तमान में डाटाबेस पर चलने वाले सभी प्रश्नों के लिए तैयार + निष्पादन का उपयोग करें, यहां तक ​​कि जो लोग करते हैं पैरामीटर नहीं है (उदाहरण के लिए * तालिका से चुनें)।पीडीओ :: क्वेरी बनाम पीडीओएसएटमेंट :: निष्पादित करें (PHP और MySQL)

सवाल यह है: क्या वास्तव में पीडीओ :: क्वेरी का उपयोग सरल प्रश्नों के लिए करने के लिए एक प्रदर्शन लाभ है जिसमें तैयारी/निष्पादन के बजाय पैरामीटर नहीं हैं?

+1

@ सुमेमी वास्तव में दोनों 'पीडीओएसेटमेंट' वापस लौटते हैं, आप 'पीडीओ :: निष्पादन' के बारे में सोच रहे हैं, लेकिन यह कोई मुद्दा नहीं है। – pmm

+0

अच्छा बिंदु; मैं हमेशा उनको मिश्रण करता हूं ... – summea

उत्तर

8

हां, क्योंकि जब आप PDO::prepare पर कॉल करते हैं, तो सर्वर को उस क्वेरी के लिए एक क्वेरी प्लान और मेटा जानकारी बनाना होगा, फिर PDO::execute का उपयोग करते समय निर्दिष्ट पैरामीटर को बाध्य करने के लिए अतिरिक्त ओवरहेड है। तो, इस ओवरहेड को बचाने और प्रदर्शन में सुधार करने के लिए, आप बिना पैरामीटर के प्रश्नों के लिए PDO::query का उपयोग कर सकते हैं।

हालांकि, आपके आवेदन के पैमाने और आकार के आधार पर, और आपके सर्वर/होस्ट कॉन्फ़िगरेशन (साझा/निजी) के आधार पर, आप किसी भी प्रदर्शन में वृद्धि देख सकते हैं या नहीं देख सकते हैं।

1

किसी भी चीज को PHP में दो अलग-अलग तरीकों से करने में एक अंतरनीय अंतर है। आपको उस मान का आकलन करना चाहिए जिसमें प्रत्येक विधि आपके लिए है और यह देखने के लिए टेस्ट केस बनाएं कि क्या आपके लिए चीजों को एक या दूसरे तरीके से करना उचित है या नहीं।

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