मेरे पास एक कंपोजिट प्राइमरी की है (जिसमें 4 कॉलम होते हैं) के साथ एक टेबल है जिसका उपयोग यह सुनिश्चित करने के लिए किया जाता है कि कोई डुप्लिकेट तालिका में दर्ज न हो। मुझे अब एक नई तालिका की आवश्यकता है जिसे इस तालिका में विदेशी कुंजियों के रूप में संदर्भ देने की आवश्यकता होगी।
मेरा प्रश्न यह है कि लुकअप गति के लिए कौन सा तरीका अधिक कुशल है:
1) क्या मैं सभी 4 कॉलमों सहित नई तालिका बनाता हूं और उन सभी को एक विदेशी कुंजी में संदर्भित करता हूं।
या
2) क्या मैं प्राथमिक कुंजी तालिका में एक नया पहचान स्तंभ बनाता हूं और इसे नई तालिका में एक विदेशी कुंजी के रूप में उपयोग करता हूं।
इस डेटाबेस से बहुत बड़ी मात्रा में डेटा रखने की उम्मीद की जाती है, इसलिए मैंने इसे अब तक बनाया है, जिसमें प्रत्येक तालिका में रखे गए डेटा की मात्रा को न्यूनतम करने की दृष्टि से बनाया गया है। इसे ध्यान में रखते हुए, विकल्प 2 सबसे अच्छा तरीका होगा क्योंकि मैं प्रत्येक पंक्ति के लिए 2 इंट कॉलम और डेटाइम कॉलम को बचाऊंगा, लेकिन मैं अनावश्यक होने पर लुकअप समय बढ़ाने से बचना चाहता हूं।
INT IDENTITY
) का उपयोग करता हूँ ऐसे मामले में - संदर्भित करता है और उस तालिका में शामिल होना बहुत आसान है। डुप्लिकेट से बचने के लिए, उन चार स्तंभों पर एक UNIQUE बाधा डालें । इसके अलावा: संकीर्ण प्राथमिक कुंजियाँ प्रदर्शन के कारणों के लिए बहुत बेहतर हैं (यदि उन्हें क्लस्टरिंग कुंजी के रूप में उपयोग किया जाता है)