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

PDO::rowCount बनाम COUNT(*)

पहला प्रश्न:

गिनती COUNT() का उपयोग करना , आंतरिक रूप से सर्वर (MySQL) अनुरोध को अलग तरीके से संसाधित करेगा।

COUNT() करते समय , सर्वर (MySQL) गिनती के परिणाम को संग्रहीत करने के लिए केवल मेमोरी आवंटित करेगा।

$row=$SQL->rowCount(); . का उपयोग करते समय सर्वर (अपाचे/PHP) पूरे परिणाम सेट को संसाधित करेगा, उन सभी परिणामों के लिए मेमोरी आवंटित करेगा, और सर्वर को फ़ेचिंग मोड में रखेगा, जिसमें लॉकिंग जैसे कई अलग-अलग विवरण शामिल हैं।

ध्यान दें कि PDOStatement::rowCount() अंतिम कथन से प्रभावित पंक्तियों की संख्या लौटाता है, न कि पंक्तियों की संख्या लौटाता है। यदि संबंधित PDOStatement . द्वारा निष्पादित अंतिम SQL कथन एक SELECT था कथन, कुछ डेटाबेस उस कथन द्वारा लौटाई गई पंक्तियों की संख्या लौटा सकते हैं। हालांकि, सभी डेटाबेस के लिए इस व्यवहार की गारंटी नहीं है और पोर्टेबल अनुप्रयोगों के लिए इस पर भरोसा नहीं किया जाना चाहिए।

मेरे विश्लेषण पर, यदि आप COUNT() . का उपयोग करते हैं , यदि आप $row=$SQL->rowCount(); का उपयोग करते हैं, तो प्रक्रिया MySQL और PHP दोनों में विभाजित हो जाएगी। , PHP के लिए प्रसंस्करण अधिक होगा।

इसलिए COUNT() MySQL में तेज़ है।

दूसरा प्रश्न:

COUNT(*) COUNT(id) . से बेहतर है ।

व्याख्या:

count(*) mysql में फ़ंक्शन को मानों की गिनती खोजने के लिए अनुकूलित किया गया है। वाइल्डकार्ड का उपयोग करने का अर्थ है कि यह प्रत्येक पंक्ति को प्राप्त नहीं करता है। यह केवल गिनती पाता है। तो count(*) . का उपयोग करें जहाँ भी संभव हो।

स्रोत:



  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 तालिका में डेटा लोड करते समय त्रुटि रेखाएँ छोड़ें

  3. mysql - किसी अन्य तालिका में स्वचालित रूप से घटनाओं को अपडेट करें

  4. Easy_install MySQLdb क्यों नहीं ढूंढ सकता?

  5. उप क्वेरी के साथ mysql अद्यतन क्वेरी