2015-07-10 30 views
7

मैं अपने मॉडल में दो तालिकाओं है:क्लस्टर सूचकांक

1) स्वामी:

OwnerName 

2) कार

OwnerKey 

CarName 

CarPrice 

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

+1

यह किसी भी प्रकार के क्लस्टर इंडेक्सिंग @madzohan –

+0

नियमित इंडेक्स आपके लिए काम नहीं करेगा? – miki725

+0

क्लस्टरिंग पुनर्प्राप्ति तेज़ी से कर देगा। क्या मैं सही हू? –

उत्तर

1

आप सवाल पूछ रहे हैं कि एसक्यूएल का अध्ययन करने की आवश्यकता है, न सिर्फ Django कोड।

यदि आपके पास केवल एक हजार मालिक और कार हैं, तो चीजें शायद तेज़ी से पर्याप्त होंगी। यदि आपके पास लाखों मालिक या कार हैं, तो आपको आवश्यक रूप से "क्लस्टर" की आवश्यकता नहीं है।

एक "क्लस्टर" कुंजी MySQL में PRIMARY KEY के रूप में लागू की गई है। आपके पास प्रति तालिका केवल एक हो सकती है, और इसके मान अद्वितीय होना चाहिए।

column1 = models.IntegerField(primary_key = True) 

तालिका स्कीमा आपके पास पहले से प्रदान करें:

मैं Django, एक पी पाने के लिए कुछ इस तरह से करते हैं। यही है, Django से परे जाओ और SHOW CREATE TABLE प्राप्त करें। (क्या आपके द्वारा दी गई बहुत अस्पष्ट है, इसलिए मेरा उत्तर बहुत अस्पष्ट है।)

संदर्भ:

PRIMARY KEY के अलावा कोई "क्लस्टर" अनुक्रमणिका नहीं है। हालांकि, एक माध्यमिक कुंजी के समान प्रदर्शन हो सकता है यदि यह "कवर इंडेक्स" है। वह शब्द उस इंडेक्स को संदर्भित करता है जिसमें SELECT में पाए गए सभी कॉलम शामिल हैं। भी, कॉलम सही ढंग से आदेश दिए गए हैं।

चलिए अपने SELECT कथनों को बेहतर तरीके से न्याय करने के लिए देखते हैं।

+0

लेकिन मैं यहां क्वेरीज़ एपीआई का उपयोग कर रहा हूं, न कि कच्चे प्रश्न –

संबंधित मुद्दे