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

क्या कंपाउंड इंडेक्स की MySQL में दिशा है?

जब आप अधिकतम पुनर्प्राप्ति गति चाहते हैं और दोनों स्तंभों में शामिल हों या जहां स्थितियां हों, लेकिन कभी-कभी स्तंभ a में उच्च चयनात्मकता होती है और कभी-कभी स्तंभ b में उच्च चयनात्मकता होती है, और आप उस तथ्य को एकल अनुक्रमणिका से भुनाना चाहते हैं।

इसके अलावा, मुझे लगता है कि मशीन के डेटा आकार/प्रदर्शन का आपका अनुपात काफी अधिक होना चाहिए और साथ ही आपको (अनुमानित) किसी भी सुधार को एक आवश्यकता कहने के लिए तैयार रहना होगा (भले ही केवल कुछ प्रतिशत)।

फिर भी, अनुभव सिखाता है कि चीजें बहुत सारे कारकों पर निर्भर करती हैं; विशिष्ट RDBMS और एप्लिकेशन परिवेशों के साथ आप अपने स्वयं के बेंचमार्क बेहतर ढंग से चला सकते हैं।

संपादित करें:समग्र अनुक्रमणिका पर आगे स्पष्टीकरण। wikipedia से :
"सूचकांक परिभाषा में कॉलमों को सूचीबद्ध करने का क्रम महत्वपूर्ण है। केवल पहले अनुक्रमित कॉलम का उपयोग करके पंक्ति पहचानकर्ताओं के एक सेट को पुनः प्राप्त करना संभव है। हालांकि, यह संभव या कुशल नहीं है (पर अधिकांश डेटाबेस) केवल दूसरे या बड़े अनुक्रमित कॉलम का उपयोग करके पंक्ति पहचानकर्ताओं के सेट को पुनः प्राप्त करने के लिए। शहर दिए गए हैं, आप उस शहर के सभी फोन नंबरों की सूची आसानी से निकाल सकते हैं। हालांकि, इस फोन बुक में किसी दिए गए उपनाम के लिए सभी फोन नंबर ढूंढना बहुत कठिन होगा। आपको प्रत्येक शहर के भीतर देखना होगा उस अंतिम नाम वाली प्रविष्टियों के लिए अनुभाग।"

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

इंडेक्स के आकार बनाम डेटा संरचना के आकार बनाम उपलब्ध मेमोरी बनाम इंडेक्स के पहले कॉलम पर चयनात्मकता के आधार पर टेबल स्कैन का उपयोग करने के लिए गलत तरीके से ऑर्डर किए गए इंडेक्स का उपयोग करना अभी भी बहुत कम खर्चीला हो सकता है।

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

प्रश्न के लिए जैसे 'मुझे सभी अध्याय बताएं जिसके अंतर्गत DISTINCT दिखाई देता है' आप दूसरी अनुक्रमणिका का उपयोग करेंगे। (क्योंकि बाद के क्षेत्र की चयनात्मकता अधिक है)

प्रश्न के लिए जैसे 'मुझे पहले अध्याय के अंतर्गत आने वाले शब्दों की संख्या बताएं' आप टीओसी का उपयोग करेंगे

तो 'क्या चयन डीएमएल अध्याय के तहत वर्णित है?' जैसे प्रश्नों के लिए आप किसी भी इंडेक्स का इस्तेमाल कर सकते हैं। एक उदाहरण जब आप दोनों इंडेक्स से लाभ उठाते हैं।

अब, अगर आपको लगता है कि यह बहुत दूर की कौड़ी है, तो कांग्रेस की स्कैन की गई लाइब्रेरी के डेटाबेस को ध्यान में रखें। :)

जैसा कि मैंने पहले कहा, सभी योजनाएँ ठीक हैं, लेकिन अंत में अपने स्वयं के मानक चलाएँ।



  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/innodb में गतिरोध का पता कैसे लगाएं?

  2. कॉलम गिनती पंक्ति में मूल्य गणना से मेल नहीं खाती है, लेकिन यह करता है

  3. मैं HTML सामग्री (MySQL) के लिए किस संरचना प्रकार का उपयोग करता हूं

  4. PHP MySQL utf 8 एन्कोडिंग

  5. विभिन्न डीबी में विदेशी कुंजी के साथ django मॉडल का उपयोग कैसे करें?