TL; ড
- যদি আপনি জানেন তবে আপনাকে ডেটা ব্যবহারের প্রয়োজন হবে না
count
।
- আপনি যদি জানেন তবে আপনি ডেটা ব্যবহার করবেন বা ব্যবহার করেছেন
length
।
- আপনি কী করছেন তা যদি আপনি না জানেন তবে ব্যবহার করুন
size
...
গণনা
Select count(*)...
ডিবিতে একটি জিজ্ঞাসা প্রেরণের সমাধান করে । আপনার ডেটা প্রয়োজন না হলে যাওয়ার উপায়, তবে কেবল গণনা।
উদাহরণ: নতুন বার্তাগুলির গণনা, যখন কেবল কোনও পৃষ্ঠা প্রদর্শিত হবে তখন মোট উপাদানসমূহ etc.
লম্বা
প্রয়োজনীয় ডেটা, যেমন প্রয়োজনীয় হিসাবে ক্যোয়ারী লোড করে এবং তারপরে এটি গণনা করে। আপনি যদি ডেটা ব্যবহার করছেন তবে যাওয়ার উপায়।
উদাহরণ: সম্পূর্ণ লোড হওয়া টেবিলের সংক্ষিপ্তসার, প্রদর্শিত তথ্যের শিরোনাম ইত্যাদি
আয়তন
এটি পরীক্ষা করে যদি ডেটা লোড করা হয় (যেমন ইতিমধ্যে রেলগুলিতে থাকে) তবে কেবল এটি গণনা করুন, অন্যথায় এটি গণনা কল করে। (প্লাস সমস্যাগুলি, অন্যান্য এন্ট্রিগুলিতে ইতিমধ্যে উল্লিখিত)।
def size
loaded? ? @records.length : count(:all)
end
সমস্যা কি?
আপনি যদি সঠিক ক্রমে এটি না করেন তবে আপনি দুবার ডিবিতে আঘাত হানতে পারেন (উদাহরণস্বরূপ, যদি আপনি রেন্ডার টেবিলের উপরে একটি সারণীতে উপাদানগুলির সংখ্যা সরবরাহ করেন, কার্যকরভাবে ডিবিতে 2 টি কল প্রেরণ করা হবে)।
size
অবস্থা যাহাই হউক না কেন আত্তীকরণ, তাহলে কি প্রয়োজন নেইlength
এবংcount
এ সব?