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

MySQL तालिका अनुक्रमणिका अनुकूलन

वैसे टाइमस्टैम्प कॉलम और यूजरआईडी पर एक इंडेक्स मददगार होगा। आपको EXPLAIN Statement के आउटपुट को पढ़ने में सक्षम होना चाहिए।

MySQL पर जाएँ और निम्न कार्य करें:

EXPLAIN SELECT timestamp, username, [a few more] FROM log 
WHERE timestamp  BETWEEN '2012-03-30 08:00:00' AND '2012-03-30 16:00:00' 
AND username='XX' 

यह आपको वह योजना दिखाता है जो MySQL क्वेरी को निष्पादित करने के लिए उपयोग करता है। कुंजी नामक कॉलम होगा। यह इंगित करता है कि MySQL क्वेरी में किस इंडेक्स का उपयोग कर रहा है। मुझे संदेह है कि आप वहां सभी देखेंगे जिसका अर्थ है कि MySQL तालिका को ऊपर से नीचे तक स्कैन कर रहा है, जहां आपके खंड के विरुद्ध प्रत्येक पंक्ति से मेल खाता है। अब टाइमस्टैम्प और यूजर आईडी कॉलम पर एक इंडेक्स बनाएं। EXPLAIN कथन फिर से चलाएँ। आपको कुंजी कॉलम में आपके द्वारा बनाई गई अनुक्रमणिका देखनी चाहिए।

यदि MySQL इंडेक्स का उपयोग करता है तो आपकी क्वेरी काफी तेज होनी चाहिए। बस याद रखें कि ओवर इंडेक्स न करें। इंडेक्स इन्सर्ट करते हैं, अपडेट करते हैं और धीमे हटाते हैं। जब आप एक टेबल में एक नई पंक्ति डालते हैं और टेबल पर तीन इंडेक्स होते हैं तो नई पंक्ति को तीन अलग-अलग इंडेक्स में 3 मान लिखना होता है। तो यह दोधारी तलवार है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सिंपल इंसर्ट phpmyadmin के साथ काम करता है लेकिन php के साथ नहीं

  2. एकाधिक मायने रखता है और एक समूह द्वारा

  3. लैरवेल के साथ लेफ्ट आउटर कैसे जुड़ें?

  4. वेब सर्वर को डेटाबेस और J2ME से कनेक्ट करें

  5. MASSIVE MySQL टेबल पर कंप्यूटेड कॉलम के लिए ORDER BY को ऑप्टिमाइज़ कैसे करें