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

MySQL:`... के बीच अंतर INDEX(a); ... INDEX(b);` और `... INDEX(a,b);` जोड़ें?

संयुक्त सूचकांक "ए" और "बी" कुंजियों का एक संयोजन है। यदि या तो "a" या "a" और "b" खोज अभिव्यक्ति का हिस्सा हैं, तो यह पहुंच में महत्वपूर्ण सुधार करता है।

यदि आप अपने SQL कथनों में केवल "b" प्रदान करते हैं तो यह अनुक्रमणिका सहायक नहीं है।

इसलिए दो अलग-अलग सूचकांक प्रदान करना उपयोगी हो सकता है - लेकिन उन्हें अलग-अलग नामों का उपयोग करना चाहिए।

एक्सेस पैटर्न के आधार पर मैं "ए" और "बी" पर एक इंडेक्स और "बी" पर एक अतिरिक्त इंडेक्स की सिफारिश करता हूं यदि यह आपकी आवश्यकताओं से मेल खाता है।

कृपया ध्यान रखें, कि कोई भी अतिरिक्त अनुक्रमणिका डेटा को संशोधित करने वाले सभी कार्यों पर डेटाबेस को धीमा कर देती है। कभी-कभी कुछ सूचकांकों को दूर रखना बेहतर होता है। आमतौर पर यह एक अच्छी सलाह है कि किसी तालिका के किसी भी स्तंभ पर सूचकांकों का उपयोग न करें।

एक और संकेत:यह तय करने के लिए कि क्या INDEX(a,b) या INDEX(b,a) का उपयोग किया जाना चाहिए, अपने डेटा के वितरण पर एक नज़र डालें। सूचकांक की चयनात्मकता बढ़ाने के लिए सूचकांक के पहले कॉलम में विभिन्न मूल्यों के उच्च प्रसार वाले मूल्यों को रखें। यह मान आम तौर पर पहले सूचकांक तत्व की गुणवत्ता पर आधारित होता है।

उदाहरण के लिए कॉलम NAME और SEX पर एक इंडेक्स को INDEX(NAME, SEX) के रूप में बनाया जाना चाहिए क्योंकि कई और नाम हैं जो अलग-अलग लिंग (तों?) हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डुप्लिकेट कुंजी अपडेट पर MySQL + प्रभावित पंक्ति गणना

  2. MySQL प्रतिकृति:यदि मैं कोई डेटाबेस निर्दिष्ट नहीं करता, तो क्या log_bin सब कुछ लॉग करेगा?

  3. स्क्रैच से पायथन फ्लास्क और MySQL का उपयोग करके एक वेब ऐप बनाना:भाग 5

  4. चेतावनी:mysql_real_escape_string ():उपयोगकर्ता '' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध (पासवर्ड का उपयोग करके:नहीं)

  5. MySQL सबसे लंबी VarChar लंबाई निर्धारित करें