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

MYSQL में थोड़ा सा फ़ील्ड इंडेक्स करें

सामान्यतया, नहीं। अनुक्रमित होने पर द्वि-राज्य फ़ील्ड प्रश्नों को गति नहीं देता है क्योंकि आपको औसतन आधी पंक्तियों को देखना होता है। आप चाहते हैं कि आपकी अनुक्रमणिका प्रविष्टियाँ चयनात्मक हों - अनुक्रमणिका में दी गई प्रविष्टि को संभावित मानों के केवल एक छोटे प्रतिशत का प्रतिनिधित्व करना चाहिए (जैसे, 10% से कम, अधिमानतः प्रतिशत के अंशों में)। फिर अनुक्रमणिका का उपयोग करने से तालिका के अधिकांश डेटा को अनदेखा कर दिया जाता है, जिससे आपको प्रदर्शन लाभ मिलता है।

कुछ डीबीएमएस बिटमैप इंडेक्स का समर्थन करते हैं। वे मदद कर सकते हैं, लेकिन आप अभी भी चयनात्मकता की समस्या में हैं।

अद्यतन प्रश्न कहता है कि मान 1 वाले मानों की संख्या छोटी (एक प्रतिशत से कम) होगी; क्या कोई अनुक्रमणिका अब आपको लाभ देगी?

उत्तर है:

  • उन प्रश्नों के लिए जहां आप निर्दिष्ट करते हैं कि मान 1 है, तो हाँ, स्तंभ पर एक अनुक्रमणिका लाभ प्रदान कर सकती है, बशर्ते कि अनुकूलक वास्तव में अनुक्रमणिका का उपयोग करता हो। आपको यह महसूस करने के लिए डीबीएमएस को मोड़ने की आवश्यकता हो सकती है कि सूचकांक इसे उन प्रश्नों के साथ उपयोग करने के पक्ष में है जहां मान 1 है; यह डीबीएमएस-विशिष्ट होता है, लेकिन विभिन्न रूपों में आंकड़ों को अद्यतन करना गेम का नाम है, संभवतः एसक्यूएल प्रश्नों में भी संकेतों का उपयोग करना। बेशक, यदि ऑप्टिमाइज़र कभी भी इंडेक्स का उपयोग नहीं करता है, तो यह अभी भी कोई लाभ नहीं देता है - और ऑप्टिमाइज़र यह तय कर सकता है कि अन्य इंडेक्स किसी तरह से इसकी अधिक मदद करते हैं।

  • उन प्रश्नों के लिए जहां मान 0 है, अनुक्रमणिका का उपयोग नहीं किया जाना चाहिए। संभावना है, हालांकि, डीबीएमएस 0 मानों के लिए भी सूचकांक को बनाए रखना जारी रखेगा - भले ही उसे कभी भी उनका उपयोग नहीं करना चाहिए। यह एक असामान्य DBMS होगा जिसे 'केवल इस कॉलम को शून्य के अलावा अन्य मानों के लिए अनुक्रमित किया जा सकता है', भले ही यह बहुत फायदेमंद होगा।

तो - यह निर्भर करता है। यह प्रश्नों पर निर्भर करता है, और यह अनुकूलक पर निर्भर करता है।

यह भी ध्यान दें कि एक समग्र सूचकांक - कुछ अन्य परंपरागत रूप से उपयोग किए जाने वाले कॉलम पर और फिर बिट-फ़ील्ड कुछ लाभ प्रदान कर सकता है। इसलिए, यदि आप लगभग हमेशा किसी दिनांक सीमा का चयन करते हैं, तो दिनांक और बिट-फ़ील्ड कॉलम (शायद उसी क्रम में) पर एक संयुक्त अनुक्रमणिका आपको एक अच्छी अनुक्रमणिका प्रदान करेगी।



  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 में बिट फ़ील्ड के अंदर CSV से डेटा लोड करें

  2. React.js में Fetch API का उपयोग करके डेटाबेस में डेटा कैसे पोस्ट करें

  3. लारवेल एलोक्वेंट बनाम क्वेरी बिल्डर - प्रदर्शन को कम करने के लिए वाक्पटु का उपयोग क्यों करें

  4. एक पीडीओ क्वेरी के साथ अप्रत्याशित रूप से PHP मेमोरी सीमा को मार रहा है?

  5. PHP के साथ एकाधिक छवि अपलोड MySQL डेटाबेस के लिए केवल एक फ़ाइल पथ को सहेज रहा है