यदि आप एक समग्र प्राथमिक कुंजी बनाते हैं, तो (x, y, z) . पर , PostgreSQL इसे एक UNIQUE . की सहायता से कार्यान्वित करता है (x, y, z) . पर बहु-स्तंभ btree अनुक्रमणिका . इसके अलावा, तीनों कॉलम NOT NULL हैं (अंतर्निहित), जो एक PRIMARY KEY . के बीच मुख्य अंतर है और एक UNIQUE INDEX ।
आपके डेटा पर स्पष्ट प्रतिबंधों के अलावा, मल्टी-कॉलम इंडेक्स का x पर तीन अलग-अलग इंडेक्स की तुलना में क्वेरी के प्रदर्शन पर कुछ अलग प्रभाव पड़ता है। , y और z ।
dba.SE पर संबंधित चर्चा:
- PostgreSQL में अनुक्रमणिका का कार्य करना
केवल-अनुक्रमणिका स्कैन . की नई सुविधा पर उदाहरण, बेंचमार्क, चर्चा और दृष्टिकोण के साथ पोस्टग्रेज 9.2 में।
विशेष रूप से, (x, y, z) . पर एक प्राथमिक कुंजी x . पर शर्तों के साथ प्रश्नों को गति देगा , (x,y) या (x,y,z) बेहतर ढंग से। यह y . पर प्रश्नों में भी मदद करेगा , z , (y,z) या (x,z) लेकिन बहुत कम हद तक।
यदि आपको बाद के संयोजनों पर प्रश्नों को तेज करने की आवश्यकता है, तो आप अपने पीके बाधा में कॉलम का क्रम बदलना चाहेंगे और/या एक या अधिक अतिरिक्त अनुक्रमणिका बना सकते हैं। देखें:
- क्या पहले फ़ील्ड पर प्रश्नों के लिए एक समग्र अनुक्रमणिका भी अच्छी है?