@Index को तब भी रखना होगा जब मैंने @ कॉलम (अद्वितीय = सत्य) के साथ चिह्नित किया हो? - जावा, एसक्यूएल, माइस्क्ल, हाइबरनेट, जेपीए

जब मुझे @ कॉलम (अद्वितीय = सत्य) के साथ चिह्नित किया गया तब भी @ आईएंडएक्स लगाने की आवश्यकता है

मेरे पास एक संपत्ति है जिसे अक्सर उपयोग किया जाएगाइकाई को पुनः प्राप्त करें और इसे डेटाबेस पर एक इंडेक्स कॉलम बनाना चाहते थे। तो यह संपत्ति पहले से ही @ कॉलम (अद्वितीय = सत्य) के साथ चिह्नित है, क्या मुझे @ आईएक्सएक्स डालनी होगी?

धन्यवाद

उत्तर:

जवाब के लिए 3 № 1

अधिकांश डेटाबेस कार्यान्वयन करते हैं UNIQUE एक का उपयोग कर बाधाओं UNIQUE INDEX, लेकिन वे "ए और टी के लिए आवश्यक हैं UNIQUE बाधा आपको एक सूचकांक का लाभ देने की आवश्यकता नहीं है। सिद्धांत रूप में, एक बाधा को क्वेरी योजनाकार द्वारा नहीं माना जाएगा जबकि एक सूचकांक होगा।

कहा कि, MySQL के विशेष मामले में, ऐसा लगता है UNIQUE बाधा और ए UNIQUE INDEX "पर्यायवाची" हैं

लेकिन आपको इस बात की पुष्टि करनी चाहिए कि क्वेरी प्लान की जाँच करके


जवाब के लिए 0 № 2

मुझे लगता है कि आप mysql का उपयोग कर रहे हैं क्योंकि प्रश्न mysql के साथ टैग किया गया है

यदि आप एनोटेशन और कुछ इस तरह का उपयोग कर रहे हैं @ कॉलम (अद्वितीय = सत्य)

फिर यह हाइबरनेट द्वारा निम्नलिखित DDL में परिवर्तित हो जाता है अद्वितीय (user_id)

जब आप mysql db को क्वेरी करते हैं और करते हैं से सूचकांक दिखाएँ यह user_id को अनुक्रमित फ़ील्ड के रूप में दिखाएगा, इसलिए उत्तर @unique है जो अनुक्रमित फ़ील्ड के लिए पर्याप्त है

HTH


संबंधित सवाल
सबसे लोकप्रिय