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

क्या mysql डेटाबेस में सभी कॉलम को इंडेक्स करना सही है?

नहीं, आप सभी स्तंभों को अनुक्रमित नहीं करते हैं। आप उन स्तंभों को अनुक्रमित करते हैं जो विशेष रूप से WHERE . में शामिल हैं खंड, और कभी-कभी यदि वे ORDER BY . में शामिल होते हैं ।

इस मामले में आप type . पर एक इंडेक्स चाहते हैं :

SELECT name FROM users WHERE type='admin'

इस मामले में आप active,type . पर एक इंडेक्स चाहते हैं :

SELECT name FROM users WHERE type='admin' AND active=1

इस मामले में आप active,type,name . पर एक अनुक्रमणिका चाहते हैं :

SELECT name FROM users WHERE type-='admin' AND active=1 ORDER BY name LIMIT 10

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

सुपर छोटे टेबलों पर, <1000 पंक्तियों वाले, अनुक्रमणिका इतनी मदद नहीं करेंगे क्योंकि एक टेबल स्कैन में इतना समय नहीं लगेगा। गैर-तुच्छ किसी भी चीज़ पर वे बिल्कुल आवश्यक हैं।

यदि आपको प्रदर्शन संबंधी समस्याएं आ रही हैं, तो मेरा सुझाव है कि आपकी स्कीमा सबसे बड़ी बाधा है, न कि अनुक्रमणिका की कमी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्प्रिंग बूट डॉकर और मैसकल को कॉन्फ़िगर करना

  2. mysql को आंतरिक या बाहरी कमांड, ऑपरेट करने योग्य प्रोग्राम या बैच के रूप में मान्यता नहीं है

  3. अनुक्रम मानों का उपयोग करते हुए पंक्तियों को सम्मिलित करते समय कॉलम की अनुमति नहीं है त्रुटि

  4. MySQL LN () फ़ंक्शन - किसी संख्या का प्राकृतिक लघुगणक लौटाता है

  5. MySQL डेटा को पेज से PDF में कैसे बदलें