मेरे पास निम्न तालिका संरचनाएक ही कॉलम पर एक अद्वितीय और सामान्य अनुक्रमणिका कितनी गलत है?
CREATE TABLE `table` (
`id` int(11) NOT NULL auto_increment,
`date_expired` datetime NOT NULL,
`user_id` int(11) NOT NULL,
`foreign_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `date_expired` (`date_expired`,`user_id`,`foreign_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
है जैसा कि आप देखेंगे, मेरे पास user_id पर डुप्लिकेट अनुक्रमणिका हैं: date_expired
& user_id
। मैं निश्चित रूप से अद्वितीय सूचकांक चाहता हूं क्योंकि मैं यह सुनिश्चित करना चाहता हूं कि डेटा अद्वितीय है।
डुप्लिकेट इंडेक्स का कारण है क्योंकि user_id
अनुक्रमणिका के बिना, मेरी मुख्य खोज क्वेरी में 4 सेकंड लगते हैं। अतिरिक्त सूचकांक के साथ 1 सेकंड लगता है। क्वेरी user_id
पर तालिका में शामिल हो रही है और date_expired
जांच रही है।
तालिका में केवल 275 रिकॉर्ड हैं।
- एक ही क्षेत्र में एक अद्वितीय और सामान्य अनुक्रमणिका कितनी खराब है?
- तालिका पूरी तरह से आईडी के दौरान डेटा की तुलना में बड़ी अनुक्रमणिका होने में कितना बुरा है?
बढ़िया, मुझे यह नहीं पता था !! और मुझे बस इतना करना है। –
मेरे पास प्राथमिक कुंजी है क्योंकि मेरे द्वारा उपयोग की जाने वाली मूल उपयोगकर्ता डेटाबेस व्यवस्थापन प्रणाली के लिए आवश्यक है कि मेरे पास प्राथमिक कुंजी हो। आप सही हैं, मुझे इसकी ज़रूरत नहीं है, लेकिन यह सिर्फ मेरे जीवन को आसान बनाता है और मुझे संदेह है कि यह गति पर बहुत अधिक प्रभाव डालता है। –
कूल, पोस्टग्रेएसक्यूएल कुछ भी समान करता है http://www.postgresql.org/docs/8.2/static/indexes-multicolumn.html मैं यह कहता हूं क्योंकि कोई ऐसा सोच सकता है जैसा मैंने किया था यदि यह सामान्य स्थान था :-) –