tl; डॉ
- यदि आप जानते हैं कि आपको डेटा उपयोग की आवश्यकता नहीं होगी
count
।
- यदि आप जानते हैं कि आप डेटा का उपयोग करेंगे या उपयोग करेंगे
length
।
- यदि आप नहीं जानते कि आप क्या कर रहे हैं, तो उपयोग करें
size
...
गिनती
Select count(*)...
DB को एक प्रश्न भेजने का संकल्प करता है । यदि आपको डेटा की आवश्यकता नहीं है, तो जाने का तरीका, लेकिन सिर्फ गिनती।
उदाहरण: नए संदेशों की गिनती, कुल तत्व जब केवल एक पृष्ठ प्रदर्शित होने जा रहा है, आदि।
लंबाई
आवश्यक डेटा लोड करता है, अर्थात आवश्यकतानुसार क्वेरी, और उसके बाद ही इसे गिनता है। यदि आप डेटा का उपयोग कर रहे हैं तो जाने का रास्ता।
उदाहरण: पूरी तरह भरी हुई मेज का सारांश, प्रदर्शित आंकड़ों के शीर्षक आदि।
आकार
यह जांचता है कि क्या डेटा लोड किया गया था (यानी पहले से ही रेल में) यदि ऐसा है, तो बस इसे गिनें, अन्यथा इसे गणना कहते हैं। (प्लस में पहले से ही अन्य प्रविष्टियों में वर्णित नुकसान)।
def size
loaded? ? @records.length : count(:all)
end
समस्या क्या है?
यदि आप सही क्रम में ऐसा नहीं करते हैं तो आप डीबी को दो बार मार सकते हैं (जैसे कि यदि आप तालिका के शीर्ष पर एक तालिका में तत्वों की संख्या को प्रस्तुत करते हैं, तो प्रभावी रूप से डीबी को भेजे गए 2 कॉल होंगे)।
size
वैसे भी स्थिति के अनुकूल है, तो इसके लिएlength
और क्या जरूरत हैcount
?