PDO::rowCount बनाम COUNT(*) PHP प्रदर्शन विश्लेषण में
PHP में PDO का उपयोग करके SQL डेटाबेस के साथ काम करते समय, एक आम कार्य एक विशिष्ट मानदंड से मेल खाने वाली पंक्तियों की संख्या की गणना करना है। इसे SQL क्वेरी में PDO::rowCount() या COUNT(*) का उपयोग करके प्राप्त किया जा सकता है। हालाँकि, सवाल उठता है कि कौन सी विधि बेहतर प्रदर्शन प्रदान करती है।
PDO::rowCount() बनाम COUNT()
PDO::rowCount() रिटर्न देता है अंतिम SQL कथन से प्रभावित पंक्तियों की संख्या, जो हमेशा लौटाई गई पंक्तियों की संख्या के समान नहीं हो सकती है। दूसरी ओर, COUNT() विशेष रूप से क्वेरी मानदंडों को पूरा करने वाली पंक्तियों की गिनती पुनर्प्राप्त करता है।
आंतरिक रूप से, MySQL सर्वर COUNT() और PDO::rowCount() को अलग-अलग तरीके से संसाधित करता है। COUNT() केवल गणना परिणाम के लिए मेमोरी आवंटित करता है, जबकि PDO::rowCount() मेमोरी आवंटित करता है और संपूर्ण परिणाम सेट लाने के लिए तैयार करता है, जिसमें अतिरिक्त ओवरहेड शामिल होता है।
सामान्य तौर पर, SQL में COUNT() का उपयोग करना PDO::rowCount() का उपयोग करने की तुलना में क्वेरी अधिक कुशल है क्योंकि यह MySQL में प्रोसेसिंग को अनुकूलित करती है।
COUNT(*) बनाम COUNT(id)
उपयोग करते समय COUNT(*) और COUNT(id), पहले वाले को आमतौर पर प्रदर्शन कारणों से प्राथमिकता दी जाती है।
COUNT(*) सभी पंक्तियों की गिनती पुनर्प्राप्त करता है, जिसमें NULL मान वाली पंक्तियाँ भी शामिल हैं। COUNT(id) केवल उन पंक्तियों की गणना करता है जहां id कॉलम में गैर-NULL मान होता है।
MySQL में एक अनुकूलन है जो COUNT() को COUNT(id) की तुलना में अधिक कुशलता से मूल्यांकन करने की अनुमति देता है। ऐसा इसलिए है क्योंकि वाइल्डकार्ड () इंगित करता है कि उसे तालिका से कोई वास्तविक डेटा पुनर्प्राप्त करने की आवश्यकता नहीं है, केवल पंक्तियों की गिनती है।
निष्कर्ष
PHP में PDO का उपयोग करके पंक्तियों की गिनती करते समय इष्टतम प्रदर्शन के लिए, PDO::rowCount() के बजाय SQL क्वेरी में COUNT() का उपयोग करने की अनुशंसा की जाती है। इसके अतिरिक्त, COUNT() और COUNT(id) के बीच चयन करते समय, MySQL के अनुकूलन के कारण आमतौर पर COUNT(*) को प्राथमिकता दी जाती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3