2011-11-03 20 views
43

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

अब मैं एक प्रश्न मैं अनुकूलन करने के लिए की जरूरत है और मैं EXPLAIN पर इस मिल:

Using where; Using temporary; Using filesort 

मैं MySQL 5.5

उपयोग कर रहा हूँ मैं जानता हूँ कि मैं WHERE नहीं बल्कि उपयोग कर रहा हूँ मेरी अस्थायी तालिका के साथ है और न ही filesort? इसका क्या मतलब है?

+4

अपनी क्वेरी पेस्ट करें। – DRapp

उत्तर

32

अस्थायी माध्यमों का उपयोग करना कि MySQL को आपकी क्वेरी निष्पादित करते समय गणना की गई मध्यवर्ती डेटा को संग्रहीत करने के लिए कुछ अस्थायी तालिकाओं का उपयोग करने की आवश्यकता है।

फाइलों का उपयोग करना एक सॉर्टिंग एल्गोरिदम है जहां MySQL सॉर्टिंग के लिए इंडेक्स का उपयोग करने में सक्षम नहीं है और इसलिए स्मृति में पूर्ण प्रकार नहीं कर सकता है। इसके बजाए यह छोटे टुकड़ों में क्रम को तोड़ देता है और फिर अंतिम क्रमबद्ध डेटा प्राप्त करने के लिए परिणामों को मर्ज करता है।

कृपया http://dev.mysql.com/doc/refman/5.0/en/explain-output.html देखें।

मुझे लगता है कि आप एक ऑर्डर द्वारा प्लस कुछ व्युत्पन्न तालिका या उप-क्वेरी का उपयोग कर रहे हैं। यह बहुत अच्छा होगा अगर आप अपनी क्वेरी और प्रासंगिक तालिकाओं/अनुक्रमणिका जानकारी और EXPLAIN आउटपुट पेस्ट कर सकते हैं।

+0

जानकारी के लिए धन्यवाद – Ken

5

सिंटेक्स:

Explain `MySQL Query` 

उदाहरण:EXPLAIN SELECT * FROM categoriesG

उदाहरण:EXPLAIN EXTENDED SELECT City.Name FROM City JOIN Country ON (City.CountryCode = Country.Code) WHERE City.CountryCode = 'IND' AND Country.Continent = 'Asia'G

अपने mysql क्वेरी के साथ पीछा किया समझाओ

Better explained in details here

संबंधित मुद्दे