Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या MySQL नई अनुक्रमणिका बनाने पर मौजूदा अनुक्रमणिका का उपयोग करता है?

नहीं, ऐसा नहीं होगा।

सैद्धांतिक रूप से, (site, product, value, id) . पर एक अनुक्रमणिका इन क्षेत्रों के किसी भी सबसेट पर इंडेक्स बनाने के लिए आवश्यक सब कुछ है ((product, value, id) पर इंडेक्स सहित) और (value, id) )।

हालांकि, द्वितीयक अनुक्रमणिका से अनुक्रमणिका बनाना समर्थित नहीं है।

सबसे पहले, MySQL तेजी से पूर्ण अनुक्रमणिका स्कैन का समर्थन नहीं करता है (जो तार्किक के बजाय भौतिक क्रम में एक अनुक्रमणिका को स्कैन कर रहा है), इस प्रकार तालिका पढ़ने की तुलना में इंडेक्स एक्सेस पथ को अधिक महंगा बना देता है। यह InnoDB के लिए कोई समस्या नहीं है , चूंकि टेबल हमेशा क्लस्टर होती है।

दूसरा, इन इंडेक्स में रिकॉर्ड ऑर्डर पूरी तरह से अलग हैं इसलिए रिकॉर्ड को वैसे भी सॉर्ट करने की आवश्यकता है।

हालांकि, MySQL में अनुक्रमणिका निर्माण गति के साथ मुख्य समस्या है यह है कि यह साइट पर ऑर्डर उत्पन्न करता है (केवल एक-एक करके रिकॉर्ड्स को B-Tree में डालना ) एक पूर्वनिर्धारित स्रोत का उपयोग करने के बजाय। जैसा कि @Daniel ने उल्लेख किया है, तेज़ अनुक्रमणिका निर्माण इस समस्या को हल करता है। यह 5.1 . के लिए एक प्लगइन के रूप में उपलब्ध है और 5.5 . में प्रीइंस्टॉल्ड आता है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या DATE_SUB() और डेटाटाइम गणना के लिए अंकगणितीय ऑपरेटरों का उपयोग करने के बीच कोई अंतर है?

  2. मैसकल एन्क्रिप्शन/संवेदनशील डेटा संग्रहीत करना,

  3. MYSQL:एक अतिरिक्त कॉलम वाली दूसरी तालिका के साथ MySQL में एक तालिका से दूसरी तालिका में पूरी पंक्ति की प्रतिलिपि कैसे करें?

  4. SQL क्वेरी जो तालिका में उपयोग नहीं की गई सभी तिथियों को लौटाती है

  5. क्या MySQL जाँच सकता है कि फ़ाइल मौजूद है?