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

EXPLAIN योजना के आधार पर MySQL प्रश्नों का अनुकूलन कैसे करें

इस पर निर्भर करता है कि आप क्या करने जा रहे हैं और क्वेरी क्या है।

आम तौर पर, EXPLAIN की प्रत्येक पंक्ति के लिए जिसमें Using where . होता है , आपको इसे एक अनुक्रमणिका (possible keys . का उपयोग करके रखना होगा और keys कॉलम)। ये आपके फ़िल्टर हैं और इसमें WHERE और ON शामिल हैं। यह कहना Using index और भी बेहतर है। इसका मतलब है कि एक कवरिंग इंडेक्स है, और MySQL टेबल डेटा में पंक्ति पर जाने के बजाय सीधे इंडेक्स से डेटा पुनर्प्राप्त कर सकता है।

वे पंक्तियाँ जहाँ Using where . नहीं है , और यह लौट रहा है बड़ी संख्या में पंक्तियों को देखा जाना चाहिए। ये तालिका में सभी पंक्तियों के लिए मान लौटा रहे हैं। मुझे नहीं पता कि आपकी क्वेरी क्या है, इसलिए मुझे नहीं पता कि यहां चिंतित होना है या नहीं। आकार को कम करने और प्रदर्शन में सुधार करने के लिए परिणाम सेट को फ़िल्टर करने का प्रयास करें।

आपको आम तौर पर Using filesort seeing देखने से बचने की कोशिश करनी चाहिए या Using temporary , हालांकि वे केवल तभी खराब हैं जब आप उनकी अपेक्षा नहीं कर रहे हैं।

फाइलसॉर्ट आमतौर पर ORDER क्लॉज के साथ दिखाई देता है। आप आम तौर पर चाहते हैं कि MySQL एक कवरिंग इंडेक्स का उपयोग करे (Using index ) ताकि सर्वर से पंक्तियों को पहले ही वापस कर दिया जाए। यदि वे नहीं हैं, तो MySQL को उन्हें बाद में फाइलसॉर्ट का उपयोग करके ऑर्डर करना होगा।

Using temporary खराब हो सकता है जब यह व्युत्पन्न तालिकाओं को संदर्भित करता है क्योंकि उनके पास अनुक्रमणिका नहीं होती है। ऐसा लगता है कि आपने इंडेक्स के साथ स्पष्ट रूप से एक अस्थायी तालिका बनाई है, इसलिए यहां, यह बुरा नहीं है। कभी-कभी, आपकी एकमात्र पसंद व्युत्पन्न तालिका का उपयोग करना होता है, और इसलिए Using temporary




  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 गंभीर त्रुटि:विशेषाधिकार तालिकाओं को खोल और लॉक नहीं कर सकता:गलत फ़ाइल स्वरूप 'उपयोगकर्ता'

  2. ClusterControl 1.7.2 की घोषणा:TimescaleDB और MySQL 8.0 के लिए बेहतर पोस्टग्रेएसक्यूएल बैकअप और समर्थन

  3. एकाधिक टाइमस्टैम्प कॉलम के साथ एक MySQL तालिका

  4. उन्नत InnoDB सेटिंग्स के साथ MySQL के प्रदर्शन में सुधार

  5. यदि मैं WHERE का उपयोग कर सकता हूं तो मुझे विदेशी कुंजी का उपयोग करने की आवश्यकता क्यों है?