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

छँटाई के लिए अनुक्रमणिका का उपयोग करने के लिए मेरी mysql क्वेरी को अनुकूलित करना

मेरा मानना ​​है कि आपके पास जो क्वेरी है वह शायद तालिका में डेटा के एक बड़े प्रतिशत से मेल खा रही है। इस तरह की स्थितियों में, MySQL ऑप्टिमाइज़र अक्सर एक टेबल स्कैन करने और इंडेक्स को पूरी तरह से अनदेखा करने का विकल्प चुनता है, क्योंकि यह वास्तव में संपूर्ण इंडेक्स के अतिरिक्त पढ़ने की परेशानी से गुजरने और डेटा को चुनने के लिए इसका उपयोग करने से तेज़ है। तो इस मामले में, मैं अनुमान लगा रहा हूं कि public_private='yes' and approved='yes' आपकी तालिका के एक अच्छे हिस्से से मेल खाता है। इसलिए, यदि MySQL इस वजह से अनुक्रमणिका का उपयोग करना छोड़ देता है, तो यह छँटाई के लिए भी उपलब्ध नहीं है।

यदि आप वास्तव में चाहते हैं कि यह एक अनुक्रमणिका का उपयोग करे, तो समाधान FORCE INDEX का उपयोग करना होगा :

select * from videos FORCE INDEX (approved_2) where public_private='public' and approved='yes' order by number_of_views desc;

हालांकि, मैं यह सुनिश्चित करने के लिए कुछ परीक्षण चलाऊंगा कि आपको जो मिल रहा है वह वास्तव में MySQL अनुकूलक ने जो करना चुना है उससे तेज़ है। स्पष्ट रूप से अनुकूलक कुछ समस्याएं हैं ऑर्डर करने के लिए चयन करने के साथ, ताकि आप निश्चित रूप से इसे एक शॉट दे सकें और देखें कि क्या आपको बेहतर प्रदर्शन मिलता है।



  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. GTID के साथ गैलेरा क्लस्टर से स्टैंडअलोन MySQL सर्वर पर एसिंक्रोनस प्रतिकृति कैसे सेट करें

  3. रंग द्वारा छवि खोजने के लिए MySQL में छवि रंग पैटर्न को संग्रहीत करने के लिए डेटाबेस डिज़ाइन

  4. RoR:मैं एकाधिक डेटाबेस के विरुद्ध अपने ऐप का परीक्षण कैसे करूं?

  5. जावा डॉक्टर अपॉइंटमेंट रिजर्वेशन डेटाबेस (mysql) प्रोग्राम.. अपॉइंटमेंट स्कीमा को डिजाइन करने में परेशानी हो रही है