यदि आप एक समग्र प्राथमिक कुंजी बनाते हैं, तो (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)
लेकिन बहुत कम हद तक।
यदि आपको बाद के संयोजनों पर प्रश्नों को तेज करने की आवश्यकता है, तो आप अपने पीके बाधा में कॉलम का क्रम बदलना चाहेंगे और/या एक या अधिक अतिरिक्त अनुक्रमणिका बना सकते हैं। देखें:
- क्या पहले फ़ील्ड पर प्रश्नों के लिए एक समग्र अनुक्रमणिका भी अच्छी है?