मैं बेन लेसानी से सहमत हूं कि यदि संभव हो तोcore/iterator
बड़े संग्रह को एक पंक्ति में लोड करने के लिए आपको संसाधन मॉडल का उपयोग करना चाहिए ।
हालाँकि, सीमाएँ हैं। जैसा कि " addAttributeToSelect में कोर / रिसोर्स_टाइटर के साथ काम नहीं करने के बारे में बताया गया है" यह ईएवी मॉडल के साथ अच्छी तरह से काम नहीं करता है यदि आपको विशेषता मान तालिकाओं से मान शामिल करने की आवश्यकता है।
और StackOverflow से जुड़ा उदाहरण वास्तव में उतना अच्छा नहीं है क्योंकि यह विभिन्न LIMIT
भावों के साथ एक ही क्वेरी को दोहराता है । जटिल प्रश्नों के लिए यह एक प्रदर्शन समस्या हो सकती है, लेकिन इससे भी अधिक महत्वपूर्ण है, अगर नई पंक्तियों को बीच में जोड़ दिया जाए तो आपको डुप्लिकेट मिल जाएगा।
चंक्स में संग्रह को संभालने का एक बेहतर तरीका यह है कि सभी आईडी को पहले लोड किया जाए, फिर इन आईडी का उपयोग वास्तविक पृष्ठांकित संग्रह के लिए फ़िल्टर के रूप में करें।
उत्पादों के लिए सरल उदाहरण:
$ids = Mage::getModel('catalog/product')
->getCollection()
->getAllIds();
$page = 1;
do {
$collection = Mage::getModel('catalog/product')
->getCollection()
->addIdFilter($ids)
->setPageSize(100)
->setCurPage($page);
$results = $collection->load();
// do stuff ......
$page++;
} while ($results->count());