मुझे श्रेणी फ्लैट टेबल विकल्प का उपयोग कब करना चाहिए?


16

एक पिछले प्रश्न के अनुवर्ती के रूप में मैं जानना चाहूंगा:

मुझे श्रेणी फ्लैट टेबल विकल्प का उपयोग कब करना चाहिए?

गुग्लिंग करते समय मुझे यह सक्षम करने के लिए एक सलाह मिली " जब आपके पास बहुत अधिक श्रेणियां हैं "। लेकिन क्या बहुत है ?

मैं आसानी से समझ सकता हूं, कि उत्पादों के लिए फ्लैट टेबल को सक्रिय करना प्रदर्शन के मामले में एक अच्छा निर्णय है, लेकिन क्या यह कैटलॉग के लिए वास्तव में उतना ही महत्वपूर्ण है?

और इससे क्या निहितार्थ निकलता है? मैंने अभी-अभी सीखा कि फ्लैट श्रेणी की टेबल्स को सक्षम करने से श्रेणी के उत्पाद पदों को बचाने में सक्षम नहीं होते हैं। कम से कम फ्लैट विकल्प के बिना उतना आसान नहीं है ( आपकी मदद के लिए Marius के लिए)। क्या कोई अन्य उल्लेख करने योग्य बातें हैं?

अग्रिम में धन्यवाद :)

जवाबों:


10

यदि आपके पास PHPMyAdmin आपके सर्वर पर स्थापित है, तो आप Magento की तालिकाओं पर एक नज़र डाल सकते हैं। आप एक बहुत के साथ शुरू देखते हैं कि देखेंगे catalog_product_...और catalog_category_...

इन सभी का उपयोग प्रत्येक उत्पाद और श्रेणी के लिए किया जाता है, जिसका अर्थ है कि आपके द्वारा कॉल किए जाने वाले प्रत्येक पृष्ठ के लिए बहुत सारे जटिल और भारी प्रश्न हैं।

MySQL पर लोड को हल्का करने के लिए और अपनी दुकान को तेज करने के लिए Magento फ्लैट टेबल प्रदान करता है। उदाहरण के लिए catalog_product_flat_1। यदि आप इस तालिका की संरचना पर एक नज़र डालते हैं, तो आप देखेंगे कि इसमें बहुत सारे मूल उत्पाद डेटा हैं, जिसका अर्थ है कि श्रेणी उत्पाद सूची में उदाहरण के लिए, केवल एक क्वेरी को इस तालिका को निष्पादित करने के बजाय निष्पादित करना होगा। विशेषता डेटा वाले कई अन्य टेबल।

हालाँकि, यह डेटा अन्य तालिकाओं में डेटा से एकत्र किया जाता है, इसका मतलब है कि हर बार जब आप किसी उत्पाद को सहेजते हैं तो कई indexes( System > Configuration > Index Management) इस उत्पाद डेटा को संकलित करने के लिए ताज़ा होते हैं। कुछ मामलों में उदाहरण के लिए इसे विकसित करते समय अनावश्यक हो सकता है। आप सभी परिवर्तनों को तुरंत देखना चाहते हैं, भले ही पृष्ठ लोड समय में कुछ समय लग सकता है।

इसलिए निष्कर्ष में, जब भी आप किसी दुकान को जनता के लिए लॉन्च करते हैं, तो उन्हें चालू करें और जब प्रोग्रामिंग पूर्ण उत्पाद या कैटलॉग ऑब्जेक्ट का उपयोग न करने का प्रयास करें, बल्कि फ्लैट इंडेक्स द्वारा प्रदान किए गए डेटा का उपयोग करें।


मुझे लगता है कि मैं हमेशा एक उत्पादक वातावरण में फ्लैट उत्पाद तालिकाओं को सक्रिय करूंगा। लेकिन मैं फ्लैट श्रेणी की तालिकाओं के बारे में इतना निश्चित नहीं था। तो आप कहते हैं कि आप हमेशा दोनों को सक्रिय करेंगे? आपके पास कितने कैटलॉग हैं?
सेलेडवेलर

हमेशा उन्हें सक्रिय करें, अधिक श्रेणियां बेशक लाभ का अधिक से अधिक हों, लेकिन जब आपके पास केवल 10 श्रेणियां हों, तब भी यह कुछ प्रश्नों को सहेजेगी।
Sander Mangel

4
आपको हमेशा फ्लैट कैटलॉग संस्थाओं को सक्रिय करना चाहिए, लेकिन सिद्धांत रूप में एक ऐसा मामला है जब यह काम नहीं करता है। यह तब होता है जब आपके पास उत्पाद प्रविष्टि में उपयोग की जाने वाली कई विशेषताएँ होती हैं और आप mysql की अधिकतम पंक्ति सीमा से अधिक हो जाते हैं। मैंने देखा है कि यह केवल एक बार पहले हुआ था। आपको ज़्यादा चिंता करने की ज़रूरत नहीं है, लेकिन ऐसा होने पर आपको पता चल जाएगा कि क्यों।
मेरियस

@Celldweller हम आपके प्रश्न पर कोई और जानकारी प्रदान कर सकते हैं?
Sander Mangel

0

यदि आपके पास श्रेणियों के लिए बहुत सी श्रेणियां या कई कस्टम निर्मित विशेषताएँ हैं, तो यह एक अच्छा विकल्प है, कम क्वेरी जटिलता का कारण। ध्यान रखें कि भारी भार से भी अधिक लाभ होता है। मुख्य नकारात्मक पक्ष यह है कि श्रेणियां और flat_categories एक बहुत भिन्न इंटरफ़ेस का उपयोग करती हैं, इसलिए अक्सर सक्षम फ़्लैट श्रेणियों के मामले में कोड को बहुत ही सावधानी बरतना पड़ता है।


वहाँ वे फिर से हैं। बहुत और बहुत कुछ। ;-) तो आप भी कहेंगे "निर्भर करता है"? जब आपके पास 10 कैटलॉग हों तो क्या आप फ्लैट श्रेणी की तालिकाओं को सक्रिय करेंगे? या ५०? क्या एक रेखा खींचना भी संभव है?
Celldweller

यह जानने की जरूरत है कि फ्लैट कैटलॉग को सक्षम करने के दौरान कोड में बदलाव के लिए कुछ उदाहरणों के साथ क्या ध्यान रखा जाता है।
अनुराग खंडेलवाल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.