2016-02-23 4 views
5

मेरे पास एक बिक्री डेटाबेस है जहां मैं इन श्रेणियों के चयन के आधार पर ग्राहक विवरण प्राप्त करना चाहता हूं। मेरे पास लगभग 15 श्रेणियां हैं और मेरा ग्राहक डेटाबेस 5 मिलियन रिकॉर्ड है। प्रत्येक उत्पाद एक से अधिक श्रेणियों के अंतर्गत आ सकता है। मुझे चयनित श्रेणी के आधार पर ग्राहक नाम पुनर्प्राप्त करने की आवश्यकता है। क्या ये सभी श्रेणियों को कॉलम के रूप में रखने या उत्पाद और श्रेणी के लिए अलग-अलग तालिका बनाने और फिर आंतरिक शामिल होने का बेहतर तरीका है? मैं प्रदर्शन के संदर्भ में चाहता हूं जो एक बेहतर दृष्टिकोण है।कॉलमर डेटाबेस

दृष्टिकोण 1:

option1 यहाँ 1 का कहना है कि उत्पाद है कि श्रेणी के अंतर्गत है।

दृष्टिकोण 2:

approach2

+1

दृष्टिकोण संख्या 2 बेहतर है। यह विस्तार योग्य है, यदि आपको तालिका संरचना को बदलने से पहले दृष्टिकोण में नई श्रेणियां मिलती हैं। यह संबंधपरक तरीके से भी उचित है। और आप पिवोटिंग की मदद से 1 से संपर्क कर सकते हैं। – gofr1

+0

धन्यवाद gofr1। लेकिन मेरी समस्या प्रदर्शन है। 5 मिलियन रिकॉर्ड में शामिल होना कोई समस्या नहीं होगी? – aditya

+0

@ आदित्य, नहीं। एसक्यूएल सर्वर विशेष रूप से उचित सूचकांक के साथ 'जॉइन' को कुशलतापूर्वक संभालता है। –

उत्तर

2

द्वितीय कार्य (Approach 2) काफी बेहतर बजाय समाधान एकल तालिका बनाने क्योंकि यह आवश्यक नहीं है कि हर उत्पाद दृष्टिकोण में सभी श्रेणियों के एक आरक्षित कर रहे हैं हो सकता है अलग-अलग कॉलम बनाकर अंतरिक्ष अलग-अलग कॉलम बनाते हैं या नहीं, और भविष्य में अगर एक श्रेणी बढ़ जाती है तो आपको तालिका की वर्तमान संरचना में बदलाव करना होगा और यह कठिन कार्य होगा।

हाँ जॉइन थोड़ा धीमा हो जाएगा लेकिन यदि आप सही तरीके से इंडेक्स बनाते हैं तो यह बेहतर प्रदर्शन करेगा।